Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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 close()上的Apache POI运行时异常_Java_Apache_Exception_Apache Poi_Docx - Fatal编程技术网

Java close()上的Apache POI运行时异常

Java close()上的Apache POI运行时异常,java,apache,exception,apache-poi,docx,Java,Apache,Exception,Apache Poi,Docx,我在使用ApachePOI读取一些.docx内容并将结果显示为未格式化预览时遇到问题。我使用的是POI版本3.11 代码: 在finally块(extractor.close())中引发以下异常: 有没有办法防止这种异常?最大的问题是,poi不会在抛出异常后释放文件句柄。我需要能够在我的应用程序之外移动或编辑文件。只是一个快速反馈:我可以通过以只读方式打开inputstream,然后使用此流使用POITextractor提取数据来解决问题 try (InputStream is = Files.

我在使用ApachePOI读取一些.docx内容并将结果显示为未格式化预览时遇到问题。我使用的是POI版本3.11

代码:

在finally块(extractor.close())中引发以下异常:


有没有办法防止这种异常?最大的问题是,poi不会在抛出异常后释放文件句柄。我需要能够在我的应用程序之外移动或编辑文件。

只是一个快速反馈:我可以通过以只读方式打开inputstream,然后使用此流使用POITextractor提取数据来解决问题

try (InputStream is = Files.newInputStream(path, StandardOpenOption.READ);
            POITextExtractor extractor = ExtractorFactory.createExtractor(is)) {
    return extractor.getText();
} catch (Exception ex) {
    logger.warn("Error in file {}", path, ex);
}

这是在所有的文件上,还是只有一小部分?你能试试最近的夜间构建吗?(比3.11期末考试更新)我明天会查一下,然后回来汇报。嘿,抱歉耽搁了。我今天检查了一下,它适用于大多数.docx文件。如果发生这种错误,只有少数几个。我还没能在晚上试一下,如果有什么变化,我会报告的。
org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Fail to save: an error occurs while > saving the package : part
     at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:503) ~[agent.jar:na]
     at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1425) ~[agent.jar:na]
     at org.apache.poi.openxml4j.opc.OPCPackage.save(OPCPackage.java:1412) ~[agent.jar:na]
     at org.apache.poi.openxml4j.opc.ZipPackage.closeImpl(ZipPackage.java:353) ~[agent.jar:na]
     at org.apache.poi.openxml4j.opc.OPCPackage.close(OPCPackage.java:425) ~[agent.jar:na]
     at org.apache.poi.POIXMLTextExtractor.close(POIXMLTextExtractor.java:87) ~[agent.jar:na]
     ....
Caused by: java.lang.IllegalArgumentException: part
     at org.apache.poi.openxml4j.opc.OPCPackage.addPackagePart(OPCPackage.java:873) ~[agent.jar:na]
     at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:448) ~[agent.jar:na]
     ... 15 common frames omitted
try (InputStream is = Files.newInputStream(path, StandardOpenOption.READ);
            POITextExtractor extractor = ExtractorFactory.createExtractor(is)) {
    return extractor.getText();
} catch (Exception ex) {
    logger.warn("Error in file {}", path, ex);
}