Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用PDFBOX合并PDF仅在AWS lambda上给出65536的临时文件大小错误_Java_Aws Lambda_Pdfbox - Fatal编程技术网

Java 使用PDFBOX合并PDF仅在AWS lambda上给出65536的临时文件大小错误

Java 使用PDFBOX合并PDF仅在AWS lambda上给出65536的临时文件大小错误,java,aws-lambda,pdfbox,Java,Aws Lambda,Pdfbox,我们正在使用PDFBOX合并两个PDF 文件1:35KB 文件2:32KB 合并时,我得到错误预期的暂存文件大小为65536,但发现61440 我正在使用MemoryUsuageSetting使用tempfile进行合并,如中所示 pdfMerger.mergeDocuments(MemoryUsageSetting.setupTempFileOnly()); 下面是我的合并例程中的代码 List<InputStream> sources (inputsteam of my fil

我们正在使用PDFBOX合并两个PDF

  • 文件1:35KB
  • 文件2:32KB
  • 合并时,我得到错误
    预期的暂存文件大小为65536,但发现61440

    我正在使用
    MemoryUsuageSetting
    使用
    tempfile
    进行合并,如中所示

    pdfMerger.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
    
    下面是我的合并例程中的代码

    List<InputStream> sources (inputsteam of my files to merge)
    mergedPDFOutputStream = new ByteArrayOutputStream();
    cosStream = new COSStream();
    PDFMergerUtility pdfMerger = new PDFMergerUtility();
    pdfMerger.addSources(sources);
    pdfMerger.setDestinationStream(mergedPDFOutputStream);
    pdfMerger.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
    
    我们正在使用
    PDFBox
    version
    2.0.12

    有人能指导解决这个问题吗

    谢谢,
    Anjana

    我在AWS中遇到了同样的问题,只是更改了合并的内存使用情况

    pdfMerger.mergeDocuments(MemoryUsageSetting.setupMixed(MEMORY_USE));
    

    它为AWS Lambda工作

    希望这对其他人有帮助


    关于

    我在AWS中遇到了同样的问题,只是更改了合并的内存使用情况

    pdfMerger.mergeDocuments(MemoryUsageSetting.setupMixed(MEMORY_USE));
    

    它为AWS Lambda工作

    希望这对其他人有帮助


    关于

    请添加相关异常的堆栈跟踪。谢谢,我已经更新了错误堆栈跟踪以及使用的PDFBox版本。我们将PDFBox版本升级为2.0.16,但是当从AWS lambda调用例程时,合并仍然失败。它仍然会因临时文件大小而失败。然而,我们将例程改为在内存中使用,而不是在AWS lambda中工作的文件。我们想了解为什么临时文件是一个问题,因为我们缺少配置。请建议这是我们的生产非常关键的错误。我没有一个解决方案;我怀疑AWS Lambda中有一个bug,PDFBox中有一个java.io.RandomAccessFile.setLength(65536)调用,该文件是用file.createTempFile()创建的,但文件大小显然是61440。您能尝试创建这样一个文件并调用setLength()吗?您使用的是最新的jdk吗?如果这听起来太复杂,我可以创建一个PDFBox版本来进行更多的日志记录。但是,只有当您1)在PDFBox JIRA bug tracker中创建问题时,这才可能发生,2)能够直接使用jar文件。请添加有问题的异常的堆栈跟踪。谢谢,我已经更新了错误的堆栈跟踪以及使用的PDFBox版本。我们将PDFBox版本升级到2.0.16,但是当从AWS lambda调用例程时,合并仍然失败。它仍然会因临时文件大小而失败。然而,我们将例程改为在内存中使用,而不是在AWS lambda中工作的文件。我们想了解为什么临时文件是一个问题,因为我们缺少配置。请建议这是我们的生产非常关键的错误。我没有一个解决方案;我怀疑AWS Lambda中有一个bug,PDFBox中有一个java.io.RandomAccessFile.setLength(65536)调用,该文件是用file.createTempFile()创建的,但文件大小显然是61440。您能尝试创建这样一个文件并调用setLength()吗?您使用的是最新的jdk吗?如果这听起来太复杂,我可以创建一个PDFBox版本来进行更多的日志记录。然而,只有当您1)在PDFBox JIRA bug tracker中创建问题,2)能够直接使用jar文件时,这才是可能的。
    pdfMerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());