如何在 multi-war ear 部署中隔离/删除 1 个子系统、jar
How to isolate / remove 1 subsystem, jar in a multi-war ear deployment
目前我正在 ear 部署中测试多个 war 模块。
基本上我有 2 个 war 依赖于: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"},
我知道我已经在 2 个单独的 war 上定义了它们,但它们不应该被隔离吗?
我还尝试在 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 - 失败。我也尝试在主部署或子部署中排除整个子系统也失败了。
知道如何解决此类问题吗?如果我有另一个 jar 2 wars 将依赖,那么从这种情况我假设我也会有类似的问题。
这个问题与 pom 或 jboss-deployment-structure 无关,而是与 web.xml 相关。我不小心在 war 上设置了相同的模块名称,从而导致名称冲突。该名称与包名称相同,所以错误让我感到困惑。如果有人遇到同样的问题,请先检查您的 web.xml。
目前我正在 ear 部署中测试多个 war 模块。
基本上我有 2 个 war 依赖于: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"},
我知道我已经在 2 个单独的 war 上定义了它们,但它们不应该被隔离吗?
我还尝试在 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 - 失败。我也尝试在主部署或子部署中排除整个子系统也失败了。
知道如何解决此类问题吗?如果我有另一个 jar 2 wars 将依赖,那么从这种情况我假设我也会有类似的问题。
这个问题与 pom 或 jboss-deployment-structure 无关,而是与 web.xml 相关。我不小心在 war 上设置了相同的模块名称,从而导致名称冲突。该名称与包名称相同,所以错误让我感到困惑。如果有人遇到同样的问题,请先检查您的 web.xml。