2

我在 jboss-as-7 上部署 ear,它有两个 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。

4

1 回答 1

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 条目手动设置依赖关系,或者通过设置显式模块依赖关系。 "

于 2013-05-10T05:31:42.907 回答