JBoss AS 7:另一个EAR中的非EJB依赖

时间:2013-08-15 08:54:18

标签: jboss7.x

我有一个具有以下结构的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依赖项?

2 个答案:

答案 0 :(得分:2)

您应该能够将依赖项放在耳朵的/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

答案 1 :(得分:2)

耳中的Jar文件是作为单个模块部署的。您可以使用jboss-deployment-structure.xml通过指定对耳朵本身的依赖关系来指示对这些依赖关系。您还需要单独包含任何ejbs,并包含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>