4

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

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

我在部署目录中有多个 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 依赖项?

4

2 回答 2

2

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

从 JBoss AS7 文档中:

Ear 部署是多模块部署。这意味着并非耳朵内的所有类都必须有权访问耳朵中的所有其他类,除非已定义显式依赖关系。默认情况下,EAR/lib 目录是一个模块,每个 WAR 或 EJB jar 部署也是一个单独的模块。子部署(wars 和 ejb-jars)总是依赖于父模块,这使它们能够访问 EAR/lib 中的类,但是它们并不总是相互之间具有自动依赖关系

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

于 2013-08-15T14:42:18.860 回答
2

耳朵中的 Jar 文件被部署为单个模块。jboss-deployment-structure.xml您可以通过指定对 ear 本身的依赖关系来指示对这些使用的依赖关系。您还需要单独包含任何 ejb 并包含export="TRUE".

例如:

<?xml version="1.0" encoding="UTF-8"? xmlns="urn:jboss:deployment-structure:1.2">
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <!-- our module depends on the libs within myear.ear -->
            <module name="deployment.myear.ear" export="TRUE"/>
            <!-- and these ejbs -->
            <module name="deployment.myear.ear.ejb1.jar" export="TRUE"/>
            <module name="deployment.myear.ear.ejb2.jar" export="TRUE"/>
            <module name="deployment.myear.ear.ejb3.jar" export="TRUE"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>
于 2014-10-20T04:10:53.940 回答