无法在 Wildfly 8 上使用 docx4j

Man*_*ela 4 jaxb docx4j wildfly

我刚刚将服务器从 JBoss AS 7.1 升级到 Wildfly 8。经过大量迁移工作,除了 docx4j 之外,一切正常。我总是得到以下例外。有没有人有想法?

Failed to define class org.docx4j.jaxb.NamespacePrefixMapperSunInternal in Module "deployment.ProfilerApp.ear:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/docx4j/jaxb/NamespacePrefixMapperSunInternal (Module "deployment.myapp.ear:main" from Service Module Loader)
Caused by: java.lang.NoClassDefFoundError: com/sun/xml/internal/bind/marshaller/NamespacePrefixMapper
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_55]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_55]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:345) [jboss-modules.jar:1.3.0.Final]
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:423) [jboss-modules.jar:1.3.0.Final]
... 225 more
Run Code Online (Sandbox Code Playgroud)

引起:java.lang.ClassNotFoundException:com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper from [Module "deployment.myapp.ear:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass( ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final] 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final] 在org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final] 在 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-module .jar:1.3.0.Final] 在 org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final] ... 229 更多

2014-05-23 11:34:16,243 错误 [org.jboss.as.ejb3](默认任务 5)javax.ejb.EJBTransactionRolledbackException:意外错误

我现在尝试过的:

  1. 将 docx4j 更新到最新版本。
  2. 在 jboss-deployment-structure.xml 中将 com.sun.xml.bind 定义为 web 和服务器包的依赖项。
  3. 添加 docx4j 作为 Wildfly 的模块并将 com.sun.xml.bind 定义为依赖项。
  4. 改成Wildfly中老版本的com.sun.xml.bind,和我的jboss-as-7.1.1是同一个模块
  5. 在 pom.xml 中添加自己的 JAXB RI(最新版本)。

但以上都不起作用。我仍然遇到相同的错误。

Man*_*ela 5

自己绑定依赖后,问题解决:

<dependency>
        <groupId>com.googlecode.jaxb-namespaceprefixmapper-interfaces</groupId>
        <artifactId>JAXBNamespacePrefixMapper</artifactId>
        <version>2.2.4</version>
        <scope>runtime</scope>
     </dependency>
Run Code Online (Sandbox Code Playgroud)