是否有JBoss 5.0的配置设置来控制部署ear文件的顺序?

时间:2011-04-19 19:22:30

标签: java java-ee deployment jboss

是否在ear文件本身(jboss-app.xml)或服务器上的配置中有一个机制,以确保最后和/或在另一只耳朵之后加载EAR?例如

  1. /deploy/web-services.ear(由...拥有) 另一个供应商/项目)
  2. /deploy/enterprise-app.ear(war, ejbs网络服务)
  3. 类似的东西:

    <load-precedence>
    web-services.ear
    enterprise-app.ear
    </load-precedence>
    

3 个答案:

答案 0 :(得分:3)

如果有的话会很方便;我不知道一个。我们的EAR依赖于其他EAR。我们的启动代码在一个线程中运行并重新尝试一段时间,直到另一个EAR中的EJB可用。

答案 1 :(得分:2)

我从未使用JBoss作为应用服务器,但查看此文档:

JBOSS DeploymentScanner

有一个部署分拣机似乎可能正是您正在寻找的东西。

答案 2 :(得分:1)

我在conf/bootstrap/deployers.xml中使用EAR后缀配置顺序。该值的范围为50(首先开始)和950(最后开始),请参阅LegacyDeploymentContextComparator class。在你的情况下,你会得到:

<bean name="topContextComparator">
    <constructor factoryClass="org.jboss.system.deployers.LegacyDeploymentContextComparator" factoryMethod="getInstance"/>
     <property name="suffixOrder" class="java.util.Map">
        <map keyClass="java.lang.String" valueClass="java.lang.Integer">
            <entry>
                <key>web-services.ear</key>
                <value>500</value>
            </entry>
            <entry>
                <key>enterprise-app.ear</key>
                <value>600</value>
            </entry>
        </map>
    </property>
</bean>

我还使用通用后缀配置,例如_<N>.ear,其中<N>是起始顺序。这样可以避免每次部署新EAR时更改deployers.xml文件。这在部署版本化的EAR(例如MyEar_v20130611_3.ear时很有用(在这种情况下N = 3):

            <entry>
                <key>_1.ear</key>
                <value>500</value>
            </entry>
            <entry>
                <key>_2.ear</key>
                <value>600</value>
            </entry>
            <entry>
                <key>_3.ear</key>
                <value>700</value>
            </entry>