0
我有一个Web应用程序在WebLogic应用程序服务器上运行在JSF 2.2上。初始化CDI Bean名称不明确
我有一个简单的java类,并尝试将它初始化为使用CDI的ApplicationScoped对象。下面的代码工作正常,并得到部署。
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class AppContext {
public AppContext() {
}
}
然而,当我尝试用@Named注释初始化对象,它未能部署使以往任何时候
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
@Named
@ApplicationScoped
public class AppContext {
public AppContext() {
}
}
例外日志如下内容:
weblogic.management.DeploymentException: CDI deployment failure:WELD-001414: Bean name is ambiguous. Name appContext resolves to beans: [Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named], Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named]]:org.jboss.weld.exceptions.DeploymentException:WELD-001414: Bean name is ambiguous. Name appContext resolves to beans: [Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named], Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named]]
at org.jboss.weld.bootstrap.Validator.validateBeanNames(Validator.java:641)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:487)
at org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:446)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:90)
at com.oracle.injection.provider.weld.WeldInjectionContainer.start(WeldInjectionContainer.java:150)
Truncated. see log file for complete stacktrace
另外WEB-INF \ beans.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
应用程序上运行:
JDK 1.8 b121;
Mojarra JSF 2.2;
WebLogic 12.2.1.1;
上解决这个问题的任何暗示的高度赞赏。
寻找链接可能会帮助你http://stackoverflow.com/questions/10994158/difference-between-named-and-managedbean-annotations-in-jsf2-0-tomcat7 –
从第一眼看 - 异常说:有两个同名的bean(“appContext”)。尝试给你的bean定制一个名称。例如。 '@Named(“myAppContextBean”),看看会发生什么。 – Siliarus
谢谢@Siliarus!我已经尝试了您的建议,但仍然收到相同的错误消息。它显然比实际显示的错误信息还要做其他事情。 –