Kit*_*tte 1 java docx4j jboss7.x
我尝试使用pptx4j库生成pptx.我可以成功生成一个pptx.然后我将代码应用于在jboss 7服务器上运行的巨大项目.项目已成功部署在服务器上.但是当我试图运行应用程序时,它会给出以下异常.
java.lang.NoClassDefFoundError:com/sun/xml/internal/bind/marshaller/NamespacePrefixMapper
代码中的后续行发生了该异常.
PresentationMLPackage presentationMLPackage = PresentationMLPackage
.createPackage();
Run Code Online (Sandbox Code Playgroud)
是否有一种特殊的方式在jboss 7服务器上运行docx4j库.我在互联网上搜索更多,但我找不到解决方案.
JBoss AS 7引入了模块(bundle)的概念,它彻底改变了类的加载方式.你应该熟悉这个概念:
https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7
jboss-deployment-structure.xml是一个特定于JBoss的部署描述符,可用于以细粒度的方式控制类加载.它应该放在META-INF(或Web部署的WEB-INF)的顶级部署中.它可以执行以下操作:
- 防止添加自动依赖项
- 添加其他依赖项
- 定义其他模块
- 更改EAR部署隔离类加载行为
- 将其他资源根添加到模块
当你NoClassDefFoundError在JBoss AS 7中获得一个你可以打赌你在某个地方缺少依赖.至于您的具体情况,您需要添加对模块的依赖com.sun.xml.bind.
docx4j 甚至还有一个页面:
http://www.docx4java.org/forums/jboss-f29/jboss-7-config-t1678.html
要让docx4j在WAR中运行,您只需要包含WEB-INF/jboss-deployment-structure.xml,其中包含:
Run Code Online (Sandbox Code Playgroud)<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"> <deployment> <dependencies> <module name="com.sun.xml.bind" /> </dependencies> </deployment> </jboss-deployment-structure>
| 归档时间: |
|
| 查看次数: |
1753 次 |
| 最近记录: |