我一直在搜索并尝试各种方法,例如将一个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我想不出一个简单的办法来解决这个问题。大多数googling建议修改jaxb的实现--但我没有整理自己的类,所以这没有意义(我的尝试也没有奏效)。
有什么想法吗?
发布于 2015-06-27 21:39:41
要使用EclipseLink/MOXy JAXB (相对于JDK中的Sun/Oracle版本或参考实现),您需要:
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。
https://stackoverflow.com/questions/31093454
复制相似问题