首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docx4j无法从ZipFile那里得到[Content_Types].xml

docx4j无法从ZipFile那里得到[Content_Types].xml
EN

Stack Overflow用户
提问于 2015-06-27 20:59:21
回答 1查看 3.9K关注 0票数 1

我一直在搜索并尝试各种方法,例如将一个jaxb.properties文件放入我的web2文件夹中,以指定eclipselink,但没有任何运气。

我可以从eclipse运行简单的代码。

代码语言:javascript
复制
String inputfilepath = "mywordfile.docx";

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
MainDocumentPart main = wordMLPackage.getMainDocumentPart();

但是,当它运行在jboss (相同的jdk,旧版本的jboss)下时,我得到

代码语言:javascript
复制
org.docx4j.openpackaging.exceptions.Docx4JException:
Couldn't get [Content_Types].xml from ZipFile

我想不出一个简单的办法来解决这个问题。大多数googling建议修改jaxb的实现--但我没有整理自己的类,所以这没有意义(我的尝试也没有奏效)。

有什么想法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2015-06-27 21:39:41

要使用EclipseLink/MOXy JAXB (相对于JDK中的Sun/Oracle版本或参考实现),您需要:

  1. 相关的EclipseLink jars
  2. docx4j-MOXy-JAXBContext-3.0.0.jar (它只包含jaxb.properties文件)

jaxb.properties文件只是说:

代码语言:javascript
复制
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

如果您使用的是maven,则只需添加:

代码语言:javascript
复制
<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。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31093454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档