docx4j:“没有合适的JAXB实现可用”运行时错误Java 1.5

时间:2012-09-11 05:18:12

标签: java jaxb docx4j

我使用docx4j来解析docx文件。 我从docx4j网站docx4j downloads下载了所有JAR。

当我在代码中使用它时,它会在第一行代码中给出运行时错误: -

WordprocessingMLPackage template = WordprocessingMLPackage.load(new FileInputStream(new File("Global_OPO_Profile_EN.docx")));

例外是:

INFO org.docx4j.utils.Log4jConfigurator .configure line 45 - Since your log4j configuration (if any) was not found, docx4j has configured log4j automatically.
ERROR org.docx4j.jaxb.Context .<clinit> line 64 - PANIC! No suitable JAXB implementation available
javax.xml.bind.JAXBException: Unable to locate jaxb.properties for package org.docx4j.relationships
    at javax.xml.bind.ContextFinder.searchcontextPath(ContextFinder.java:205)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:149)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:281)
    at org.docx4j.jaxb.NamespacePrefixMapperUtils.getPrefixMapper(NamespacePrefixMapperUtils.java:47)
    at org.docx4j.jaxb.Context.<clinit>(Context.java:56)
    at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:658)
    at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:206)
    at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:195)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:178)
    at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172)
    at com.atos.docx4jtest.Docx4iTest.main(Docx4iTest.java:15)
INFO org.docx4j.jaxb.Context .<clinit> line 76 - loading Context jc
ERROR org.docx4j.jaxb.Context .<clinit> line 102 - Cannot initialize context
javax.xml.bind.JAXBException: Unable to locate jaxb.properties for package org.docx4j.wml
    at javax.xml.bind.ContextFinder.searchcontextPath(ContextFinder.java:205)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:149)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:281)
    at org.docx4j.jaxb.Context.<clinit>(Context.java:77)
    at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:658)
    at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:206)
    at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:195)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:178)
    at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172)
    at com.atos.docx4jtest.Docx4iTest.main(Docx4iTest.java:15)
ERROR org.docx4j.openpackaging.contenttype.ContentTypeManager .parseContentTypesFile line 690 - java.lang.NullPointerException
org.docx4j.openpackaging.exceptions.InvalidFormatException: Bad [Content_Types].xml
    at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:691)
    at org.docx4j.openpackaging.io.LoadFromZipNG.process(LoadFromZipNG.java:206)
    at org.docx4j.openpackaging.io.LoadFromZipNG.get(LoadFromZipNG.java:193)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:301)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:245)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:195)
    at org.docx4j.openpackaging.packages.OpcPackage.load(OpcPackage.java:178)
    at org.docx4j.openpackaging.packages.WordprocessingMLPackage.load(WordprocessingMLPackage.java:172)
    at com.atos.docx4jtest.Docx4iTest.main(Docx4iTest.java:15)
Caused by: java.lang.NullPointerException
    at org.docx4j.openpackaging.contenttype.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:658)
    ... 8 more

1 个答案:

答案 0 :(得分:2)

Java 1.5不包含JAXB,因此您需要下载JAXB参考实现,并将其添加到类路径中。