在JAR内部(也在EAR

时间:2017-08-29 12:54:12

标签: java java-ee ejb ear

我有一个包含3个WAR的EAR文件以及lib /文件夹中的一些常见依赖项。其中一个依赖项有一个带有调度方法的EJB,但似乎服务器没有识别它。日志中没有证据,没有执行代码。

但是当我在WEB-INF / lib中使用相同的jar部署一个简单的战争时,它可以工作。我已经尝试使用maven插件将jar打包为ejb-jar,但根本没有成功。

关于必须发生什么的任何想法?

1 个答案:

答案 0 :(得分:0)

EAR的lib目录中的Jars不被视为EJB jar,并且在这方面不会在部署时考虑其内容。仅存在lib目录,以便更容易提供库类,其类自动对EAR文件中的所有模块可见。

您的EAR文件包含META-INF / application.xml文件,该文件列出了它包含的各种modules。在Java EE 6之前,只有ejb-modules被考虑用于潜在的EJB。 Java EE 6和更新的Web模块添加到该列表中。 Web模块的WEB-INF / lib目录中的所有jar都被认为是Web模块的一部分,即使它们包含ejb-jar。在Web模块中找到的任何ejb-jar.xml文件都合并在一起。即使将Web模块部署为独立的WAR文件,这也适用。