[英]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.