我有一个企业应用程序,它作为EAR文件提供。耳内的META-INF文件夹包含' application.xml'正如预期的那样,有一个属于该应用程序的模块列表。
耳内还有许多EJB jar文件,每个文件都包含许多EJB。出于某些原因,我们希望使用XML部署描述符来配置所有ejbs。因此,我们有许多ejb-jar文件,每个文件都嵌入在ear文件中的每个jar的META-INF文件夹中。
EAR_FILE : :-----META-INF : : : -application.xml : : :------EJB_JAR_1 : : : -META-INF : : : -ejb-jar.xml :------EJB_JAR_2 : : : -META-INF : : : -ejb-jar.xml :------EJB_JAR_3 : -META-INF : -ejb-jar.xml
如您所见,这导致了许多单独的ejb-jar.xml部署描述符。我们希望能够将其集中到一个部署描述符中,该描述符定义应用程序中的所有ejbs。
另外,我们希望将单独的ejb jar文件保存在耳朵内,而不是将它们全部放在一只耳朵中。
是否可以拥有一个' master' ear文件的META-INF文件夹中的ejb-jar文件,其中包含应用程序中所有EJB的配置?
或者甚至可以将ejb-jar文件放在包含EJB的实际jar之外?
在一天结束时,我真正希望实现的是将所有ejb部署描述符集中到一个文件中,而不是像上面那样将它们分散到每个单独的EJB jar上?
非常感谢,
戴夫。
答案 0 :(得分:0)
或者甚至可以将ejb-jar文件放在实际的文件之外 包含EJB的jar?
是的,虽然更准确:可以在EJB模块JAR之外安装EJB类。换句话说,您可以使用单个ejb-jar.xml创建单个EJB模块,然后将所有EJB_JAR_1,EJB_JAR_2等放在EAR / lib /目录中,这会自动使所有EJB都可以看到所有JAR EAR中的模块(或者,在您的情况下是单个EJB模块)。或者,您可以在EJB模块META-INF / MANIFEST.MF中手动维护Class-Path: ejb-1.jar ejb-2.jar
列表,但这样做更有效。