【问题标题】:Cannot use docx4j on Wildfly 10 and java 8无法在 Wildfly 10 和 java 8 上使用 docx4j
【发布时间】:2016-11-22 13:12:57
【问题描述】:

我正在尝试在 wildfyl-10 服务器上运行 docx4j。 我总是遇到以下异常:

> INFO org.docx4j.jaxb.Context - java.vendor=Oracle Corporation
>     INFO org.docx4j.jaxb.Context - java.version=1.8.0_91
>     INFO org.docx4j.jaxb.Context - No MOXy JAXB config found; assume not intended..
>     WARN org.docx4j.jaxb.NamespacePrefixMapperUtils - name:    com.sun.xml.internal.bind.namespacePrefixMapper value:   
> org.docx4j.jaxb.NamespacePrefixMapperSunInternal@5ac63c7a .. trying
> RI.
>     INFO org.docx4j.jaxb.NamespacePrefixMapperUtils - Using NamespacePrefixMapper, which is suitable for the JAXB RI
>     INFO org.docx4j.jaxb.Context - Using JAXB Reference Implementation
>     INFO org.docx4j.jaxb.Context - Not using MOXy; using com.sun.xml.bind.v2.runtime.JAXBContextImpl
>     WARN org.docx4j.utils.ResourceUtils - Couldn't get resource: docx4j.properties
>     WARN org.docx4j.Docx4jProperties - Couldn't find/read docx4j.properties; docx4j.properties not found via classloader.
>     INFO org.docx4j.XmlUtils - setProperty com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
>     INFO org.docx4j.XmlUtils - actual: com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
>     INFO org.docx4j.XmlUtils - setProperty com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
>     INFO org.docx4j.XmlUtils - actual: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
>     INFO org.docx4j.openpackaging.contenttype.ContentTypeManager - Detected WordProcessingML package 
>     INFO org.docx4j.openpackaging.io3.Load3 - Instantiated package of type org.docx4j.openpackaging.packages.WordprocessingMLPackage
>     INFO org.docx4j.utils.XPathFactoryUtil - xpath implementation: __redirected.__XPathFactory
>     INFO org.docx4j.openpackaging.io3.Load3 - package read;  elapsed time: 3269 ms
>     WARN org.docx4j.jaxb.NamespacePrefixMapperUtils - name: com.sun.xml.internal.bind.namespacePrefixMapper value:
> org.docx4j.jaxb.NamespacePrefixMapperRelationshipsPartSunInternal@63f5c9a4
> .. trying RI.
>     INFO org.docx4j.jaxb.NamespacePrefixMapperUtils - Using NamespacePrefixMapperRelationshipsPart, which is suitable for the JAXB
> RI

wildfly 模块:

<module xmlns="urn:jboss:module:1.3" name="org.docx4j">
<resources>
<resource-root path="antlr-runtime-3.5.2.jar"/>
....
<resource-root path="docx4j-ImportXHTML-3.3.1.jar"/>

</resources>

<dependencies>

<module name="org.antlr"/>
<module name="sun.jdk"/>
<system export="true">
    <paths>
        <path name="com/sun/xml/internal/bind/marshaller"/>
    </paths>
</system>   
 <module name="javax.xml.bind.api"/>    
<module name="javax.api"/>              
<module name="com.sun.xml.bind" />

</dependencies>
</module>

jboss-部署在耳朵上:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.3">
<sub-deployment name="Be.jar">
    <dependencies>
        <module name="com.sun.xml.bind" />
        <module name="org.docx4j" export="true" />
    </dependencies>
</sub-deployment>
</jboss-deployment-structure>

为早期版本的服务器提出的解决方案似乎都不起作用。 有人有想法吗?

【问题讨论】:

  • 什么异常?您包含的日志表明 JAXB 参考实现正在使用中。它没有显示任何问题。
  • 我在控制台上看到类似的内容 10:33:48,920 错误 [stderr] (default task-56) [default task-56] INFO org.docx4j.jaxb.NamespacePrefixMapperUtils - Using NamespacePrefixMapperRelationshipsPart,其中适用于 JAXB RI
  • 我不知道“ERROR [stderr] (default task-56) [default task-56]”是什么(不是 docx4j),而是“INFO org.docx4j.jaxb.NamespacePrefixMapperUtils -使用适用于 JAXB RI 的 NamespacePrefixMapperRelationshipsPart 完全可以。
  • 你是对的!我添加了 并从 docx4j 模块描述符中删除了 并解决了问题。谢谢
  • 太棒了。请写下您的最终模块和 jboss 部署作为答案,并将其标记为正确:-)

标签: java wildfly docx4j wildfly-10


【解决方案1】:

从docx4j模块描述符中删除slf4j-api-xxx.jar后,问题解决了。

Wildfly 10 上启用日志记录 (SLF4J) 的 Docx4j 模块描述符:

<module xmlns="urn:jboss:module:1.3" name="org.docx4j">
<resources>

   <!--<resource-root path="slf4j-api-1.7.21.jar"/>  -->

   <resource-root path="antlr-runtime-3.5.2.jar"/>
   <resource-root path="avalon-framework-api-4.3.1.jar"/>
   <resource-root path="avalon-framework-impl-4.3.1.jar"/>
   <resource-root path="commons-codec-1.10.jar"/>
   <resource-root path="commons-io-2.4.jar"/>
   <resource-root path="commons-lang3-3.4.jar"/>
   <resource-root path="commons-logging-1.1.3.jar"/>
   <resource-root path="docx4j-3.3.1.jar"/>
   <resource-root path="guava-19.0.jar"/>
   <resource-root path="httpclient-4.5.2.jar"/>
   <resource-root path="httpcore-4.4.4.jar"/>
   <resource-root path="jackson-annotations-2.7.0.jar"/>
   <resource-root path="jackson-core-2.7.3.jar"/>
   <resource-root path="jackson-databind-2.7.3.jar"/>
   <resource-root path="jaxb-svg11-1.0.2.jar"/>
   <resource-root path="lorem-2.0.jar"/>
   <resource-root path="mbassador-1.2.4.2.jar"/>
   <resource-root path="serializer-2.7.2.jar"/>
   <resource-root path="stringtemplate-3.2.1.jar"/>
   <resource-root path="wmf2svg-0.9.8.jar"/>
   <resource-root path="xalan-2.7.2.jar"/>
   <resource-root path="xmlgraphics-commons-2.1.jar"/>
   <resource-root path="docx4j-ImportXHTML-3.3.1.jar"/>
</resources>

<dependencies>
   <module name="org.slf4j"/> 
   <module name="org.antlr"/>
   <module name="sun.jdk"/>
   <system export="true">
    <paths>
        <path name="com/sun/xml/internal/bind/marshaller"/>
    </paths>
   </system>    
   <module name="javax.xml.bind.api"/>  
   <module name="javax.api"/>               
   <module name="com.sun.xml.bind" />
</dependencies>
</module>

用于 EAR 的 jboss-deployment-structure.xml:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.3">
   <sub-deployment name="Be.jar">
      <dependencies>
         <module name="com.sun.xml.bind" />
         <module name="org.docx4j" export="true" />
     </dependencies>
   </sub-deployment>
</jboss-deployment-structure>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-02
    • 2019-08-25
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 2017-04-07
    相关资源
    最近更新 更多