8

我正在使用部署在 JBoss 7.1.1 上的 DeltaSpike 1.7.1 和 CDI 1.0 (Weld 1.1.5)。这是一个遗留项目,我无法更改我们正在使用的技术。

仅当我部署多个 WAR 文件时才会出现问题(我知道 CDI 在 EAR 中存在/遇到多个 WAR 文件的问题,但我没有在 EAR 文件之外的 JBOSS 实例中找到有关多个 WAR 文件的任何信息。

请注意,问题不会在每次部署项目时都会发生,通常,当我要求 Jenkins 一次构建和部署多个项目时,我会收到以下错误消息:

WELD-001318 Cannot resolve an ambiguous dependency between [Managed Bean [class org.apache.deltaspike.core.impl.scope.window.DefaultWindowContextQuotaHandler] with qualifiers [@Any @Default], Managed Bean [class org.apache.deltaspike.jsf.impl.scope.window.JsfWindowContextQuotaHandler] with qualifiers [@Any @Default]]

我试图摆脱 DeltaSpike,但这些项目严重依赖 @ViewAccessScoped 注释,并且会浪费大量时间来更改它。

4

1 回答 1

2

看看这个页面:

https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7

更具体地说,查看 JBOSS 7 Config 中的此设置:

<subsystem xmlns="urn:jboss:domain:ee:1.0" >            
  <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
</subsystem>

将此变量设置为 true 可能会解决您的问题。

于 2016-08-31T13:36:25.043 回答