我有一个具有以下结构的EAR:

ear.ear
  mywar.war
    lib
      jar1.jar
      jar2.jar
      jar3.jar


我在Deployments目录中有多个WAR,我希望它们具有jar1.jar。 ear.ear中的jar2.jar和jar3.jar作为依赖项。

这可能吗?

我已经尝试过以下用于jboss-deployment-structure.xml的应用程序,但是没有运气。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="deployment.ear.ear.jar1.jar"/>
            <module name="deployment.ear.ear.jar2.jar"/>
            <module name="deployment.ear.ear.jar3.jar"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

<?xml version="1.0" encoding="UTF-8"?>
    <jboss-deployment-structure>
        <deployment>
            <dependencies>
                <module name="deployment.ear.ear.lib.jar1.jar"/>
                <module name="deployment.ear.ear.lib.jar2.jar"/>
                <module name="deployment.ear.ear.lib.jar3.jar"/>
            </dependencies>
        </deployment>
    </jboss-deployment-structure>


是否可以在单独的EAR中具有非ejb JAR依赖项?

最佳答案

您应该能够将依赖项放在耳朵的/lib文件夹中,并且您的战争应该会看到它们。

从JBoss AS7文档中:


耳部部署是多模块部署。这意味着并非所有
耳朵内的课程必定可以访问所有其他课程
除非已经定义了显式依赖项,否则这些类在您耳边。通过
缺省情况下,EAR / lib目录是一个模块,每个WAR或EJB
jar部署也是一个单独的模块。子部署(战争和
ejb-jars)始终依赖于父模块,这给了
他们可以访问EAR / lib中的类,但是它们并不总是具有
彼此自动依赖


您还可以阅读有关JBoss AS 7中类加载的更多信息:https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7

10-06 10:15
查看更多