簡體   English   中英

如何在多戰部署中隔離/移除1個子系統,jar

[英]How to isolate / remove 1 subsystem, jar in a multi-war ear deployment

目前我正在測試耳內部署的多戰模塊。

基本上我有兩個依賴的戰爭:hibernate-validator,它進一步依賴於:javax.validation.api並包含ValidatorFactory。 我認為這也會導致jca子系統的激活。

我不明白的是為什么我得到:

Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.naming.context.java.module.xxx-ear.cmp.ValidatorFactory is already registered"},

我知道我已經在兩次不同的戰爭中定義了它們,但它們不應該被隔離嗎?

我還嘗試在ear的meta-inf文件夾中添加jboss-deployment-structure.xml,其中包含:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <!-- Make sub deployments isolated by default, so they cannot see each others 
        classes without a Class-Path entry -->
    <ear-subdeployments-isolated>true</ear-subdeployments-isolated>

    <deployment>
        <exclusions>
            <module name="javax.validation.api" />
        </exclusions>
    </deployment>

    <sub-deployment name="xxx-api.war">
        <exclusions>
            <module name="javax.validation.api" />
        </exclusions>
        <exclude-subsystems>
            <subsystem name="jca" />
        </exclude-subsystems>
    </sub-deployment>

    <sub-deployment name="xxx-web.war">
        <exclusions>
            <module name="javax.validation.api" />
        </exclusions>
    </sub-deployment>

</jboss-deployment-structure>

我嘗試在部署和子部署中排除jar - 失敗。 我也嘗試在主要部署或子部署中排除整個子系統也失敗了。

知道如何解決這類問題嗎? 如果我有兩個戰爭將依賴的另一個罐子怎么辦呢?那么從這個案例我認為我也會遇到類似的問題。

這個問題與pom和jboss-deployment-structure無關,而是與web.xml有關。 我不小心在兩次戰爭中都設置了相同的模塊名稱,從而導致名稱沖突。 名稱與包名稱相同,因此錯誤讓我感到困惑。 如果有人遇到同樣的問題,請先檢查您的web.xml。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM