我将一些核心功能用于打包在一个公共(public)类 JAR 中的 Web 应用程序。此 JAR 包含引用 EJB 的类和引用 CORE.jar 和 EJB.jar 的 Web 应用程序。
- CORE.jar -> EJB.jar
- WEBAPP.war -> CORE.jar
- WEBAPP.war -> EJB.jar
我正在使用 Glassfish 3.1.2 在 Eclipse 开发插件中进行部署。
在我的部署日志中,我看到如下失败。 严重:类 [ Lnet/webframeone/ejb/data/GeoLocationsBeanLocal; ] 未找到。加载 [ class net.webframeone.servlet.action.GetGeoLocation ] 时出错
此处的引用是从 CORE.jar 中的类到 EJB.jar 中的类。 EAR的结构大致如下。
- EJB.jar
- WEBAPP.war
- lib/CORE.jar
我曾尝试将类路径条目放入 CORE.jar 上的 manifest.mf 中,但无济于事。
如果我将 WEBAPP 与包含 CORE.jar 和 EJB.jar 的部署程序集打包在一起,并将其部署在 EAR 之外,它就可以正常工作。
任何想法都会被热情地排除在外!
最佳答案
我不确定 GlassFish 服务器。我使用 JBoss。我在以下情况下看到过这个问题 -
- /META-INF/application.xml 没有正确提及所有模块。
- 未指定部署的依赖项
关于java - 当打包到 EAR 中时,Jar 中的实用程序类找不到 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13881397/