我正在jboss-as-7上部署耳朵,它有两个ejb jar和一个war文件。以下是application.xml文件的结构。
<module>
<ejb>ejb1.jar</ejb>
</module>
<module>
<web>
<web-uri>web1.war</web-uri>
<context-root>root/test</context-root>
</web>
</module>
<module>
<ejb>ejb2.jar</ejb>
</module>
此ear部署需要外部库依赖,因此我添加了依赖项 jboss-deployment-structure.xml文件。
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
<deployment>
<dependencies>
<module name="deployment.local.fwk" export="true"/>
</dependencies>
</deployment>
<module name="deployment.local.fwk">
<resources>
<resource-root path="myclasses.jar"/>
</resources>
</module>
</jboss-deployment-structure>
我在module / local / fwk文件夹中有这个jar文件。我不确定这里缺少什么,在部署时我得到了myclasses.jar中存在的类的NoClassDefFoundError。
答案 0 :(得分:1)
指定了如何加载类的详细文档
https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7
由于您将ear-subdeployments-isolated设置为true,因此您是否在Manifest文件中设置了Class-Path条目。
“如果将ear-subdeployments-isolated设置为true,则不会设置子部署之间的自动模块依赖关系。用户必须使用Class-Path条目手动设置依赖关系,或者通过设置显式模块的依赖关系。“