1

我有一个包含多个 .war 的 .ear,我想将它部署到 jboss 6.4.7 服务器中。问题是其中一个 .war 正在使用 jboss 的模块 (hibernate-jpa-2.0),但该应用程序需要 hibernate-jpa-2.1 版本。如何告诉我的战争不使用这个 jboss 模块。我在 Ear/application/META-INF 中添加了一个 jboss-deployment-structure 并带有以下排除项:

<jboss-deployment-structure>
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>

<sub-deployment name="myapp.war">
        <exclusions>
            <module name="javax.persistence.api" /> 
        </exclusions>
    </sub-deployment>
</jboss-deployment-structure>

但不工作..

“javax.persistence.api”写在 jboss 服务器上的 module.xml 中。

谢谢你的帮助。

4

1 回答 1

1

添加以下内容

<jboss-deployment-structure>
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
    <sub-deployment name="myapp.war">
    <exclude-subsystems>
        <subsystem name="jpa" />
    </exclude-subsystems>
    <exclusions>
        <module name="javaee.api" />
    </exclusions>
        </sub-deployment>
    </jboss-deployment-structure>

子系统是由扩展添加的一组功能。它定义了如何使用和配置它。它还使用配置文件下的标记在 EAP 配置文件(standalone.xml 或 domain.xml)中定义。对于在 EAP 实例中添加的每个扩展,该扩展的功能和属性都使用<subsystem>元素进行配置。

另一种选择可以只是将 JBOSS 中的 jar 替换为较新的

于 2017-06-08T11:59:08.323 回答