Pet*_*wen 5 java cdi java-ee-6 jboss-weld
部署我的应用程序时出现错误,如下所示.
Caused by: org.jboss.weld.exceptions.AmbiguousResolutionException: WELD-001318 Cannot resolve an ambiguous dependency between [
Producer Method [String] with qualifiers [@Any @Config] declared as [[method] @Produces @Config public ca.comdev.cdip.mis.enterpriseportal.configuration.ConfigurationProvider.getConfigurationValue(InjectionPoint)],
Producer Method [String] with qualifiers [@Any @Config] declared as [[method] @Produces @Config public ca.comdev.cdip.mis.enterpriseportal.configuration.ConfigurationProvider.getConfigurationValue(InjectionPoint)]]
Run Code Online (Sandbox Code Playgroud)
我只有这样的方法,其标题看起来像这样
@Produces @Config public String getConfigurationValue(InjectionPoint p) throws ConfigurationException{...}
Run Code Online (Sandbox Code Playgroud)
和班级有这些
@Named
@Singleton
@Startup
public class ConfigurationProvider {...}
Run Code Online (Sandbox Code Playgroud)
请帮忙.这个错误可能比我的代码更模糊.
我因在 2 个不同的模块中意外使用相同的 EJB 名称“ExternalClient”而发生此错误。
<enterprise-beans>
<session>
<ejb-name>ExternalClient</ejb-name> <!-- DUPLICATED -->
<ejb-class>com.company.ExternalClient</ejb-class>
<session-type>Stateless</session-type>
<env-entry>
<env-entry-name>url</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>http://company.com/API</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
Run Code Online (Sandbox Code Playgroud)
使用 JBoss 时可以通过在部署期间检查 JNDI 绑定来检测到这一点。EJB 被多次实例化。