docx4j 无法从 ZipFile 中获取 [Content_Types].xml
docx4j Couldn't get [Content_Types].xml from ZipFile
我一直在谷歌搜索并尝试各种操作,例如将 jaxb.properties 文件放入我的 web2 文件夹中以指定 eclipselink,但一点运气都没有。
我可以 运行 来自 eclipse 简单代码
String inputfilepath = "mywordfile.docx";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
MainDocumentPart main = wordMLPackage.getMainDocumentPart();
但是当它 运行 在 jboss 下时(相同 jdk,jboss 的旧版本)我得到
org.docx4j.openpackaging.exceptions.Docx4JException:
Couldn't get [Content_Types].xml from ZipFile
我想不出一个简单的方法来修复它。大多数谷歌搜索建议更改 jaxb 的实现 - 但我没有编组我自己的 类 所以它没有意义(我的尝试也没有奏效)。
有什么想法吗?
要使用 EclipseLink/MOXy JAXB(相对于 JDK 或参考实现中的 Sun/Oracle 版本),您需要:
- 相关的 EclipseLink jar
- docx4j-MOXy-JAXBContext-3.0.0.jar(仅包含 jaxb.properties 个文件)
jaxb.properties 文件只是说:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
如果你使用的是maven,你只需要添加:
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-MOXy-JAXBContext</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
<version>2.5.1</version>
</dependency>
当您启动 docx4j 时,日志输出会告诉您它正在使用哪个 JAXB。
我一直在谷歌搜索并尝试各种操作,例如将 jaxb.properties 文件放入我的 web2 文件夹中以指定 eclipselink,但一点运气都没有。
我可以 运行 来自 eclipse 简单代码
String inputfilepath = "mywordfile.docx";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
MainDocumentPart main = wordMLPackage.getMainDocumentPart();
但是当它 运行 在 jboss 下时(相同 jdk,jboss 的旧版本)我得到
org.docx4j.openpackaging.exceptions.Docx4JException:
Couldn't get [Content_Types].xml from ZipFile
我想不出一个简单的方法来修复它。大多数谷歌搜索建议更改 jaxb 的实现 - 但我没有编组我自己的 类 所以它没有意义(我的尝试也没有奏效)。
有什么想法吗?
要使用 EclipseLink/MOXy JAXB(相对于 JDK 或参考实现中的 Sun/Oracle 版本),您需要:
- 相关的 EclipseLink jar
- docx4j-MOXy-JAXBContext-3.0.0.jar(仅包含 jaxb.properties 个文件)
jaxb.properties 文件只是说:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
如果你使用的是maven,你只需要添加:
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-MOXy-JAXBContext</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
<version>2.5.1</version>
</dependency>
当您启动 docx4j 时,日志输出会告诉您它正在使用哪个 JAXB。