java - POI - 无法在 osgi 中打开 xlsx 文件

标签 java excel osgi apache-camel apache-poi

尝试在 osgi (jboss-fuse) 中读取 xlsx 文件时出现下一个异常。 Xls 工作正常。

使用 bundle 内的下一个 jar 文件:

<br>
lib/xml-apis-1.0.b2.jar, \<br>
lib/poi-scratchpad-3.9-20121203.jar, \<br>
lib/poi-3.9-20121203.jar, \<br>
lib/dom4j-1.6.1.jar, \<br>
lib/poi-ooxml-schemas-3.9-20121203.jar, \<br>
lib/poi-ooxml-3.9-20121203.jar, \<br>
lib/xmlbeans-2.3.0.jar, \<br>
lib/poi-excelant-3.9-20121203.jar, \<br>
lib/xmlbeans-xpath-2.3.0.jar   <br>

117-org.apache.camel.camel-core - 2.12.0.redhat-610379 | ** org.apache.poi.openxml4j.exceptions.InvalidFormatException: Can't read content types part !
at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.(ContentTypeManager.java:107) at org.apache.poi.openxml4j.opc.internal.ZipContentTypeManager.(ZipContentTypeManager.java:56) at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:188) at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:665) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:274) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:79)

最佳答案

因此,在 bundle 中的 META-INF/services 下添加下一个文件“org.xml.sax.driver”会有所帮助。 文件内容: org.apache.xmlbeans.impl.piccolo.xml.Piccolo

将 poi 更新到最新版本 3.11 修复了没有该文件的问题:

lib/poi-scratchpad-3.11.jar, \
lib/poi-3.11.jar, \
lib/poi-ooxml-schemas-3.11.jar, \
lib/poi-ooxml-3.11.jar, \
lib/poi-excelant-3.11.jar, \
lib/xmlbeans-2.6.0.jar, \
lib/xmlbeans-xpath-2.6.0.jar

关于java - POI - 无法在 osgi 中打开 xlsx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28974171/

相关文章:

java - 为什么 Maven Assembly Plugin 不将我的项目文件包含在具有依赖项的 jar 中?

java - 即使在其他线程中启动,帧也会卡住

具有模式和匹配器的 Java 正则表达式

Excel:可以沿列复制的函数,从而对其他列的值进行排序

vba - 创建一个仅与 1 个单元格中的变化相关的 rand Between 函数

java - Apache Felix 和 Web 启动 : loading bundles

java - Mockito 问题 - excepts.verification.WantedButNotInvoked

excel - 替换单元格中区分大小写的部分文本

Java:从 OSGi 应用程序中设置时区

eclipse - OSGi 子系统能否替代 Eclipse 功能?