Ich habe eine Webanwendung, die auf JSF 2.2 über WebLogic Application Server ausgeführt wird.Initialisiere CDI Bean Name Ambiguous
Ich habe eine einfache Java-Klasse und versuchen, es als ApplicationScoped-Objekt mit CDI zu initialisieren. Der folgende Code funktioniert einwandfrei und wird bereitgestellt.
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class AppContext {
public AppContext() {
}
}
Allerdings, wenn ich versuchen, das Objekt mit @Named Anmerkung zu initialisieren, schlägt es zu implementieren, was so überhaupt
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
@Named
@ApplicationScoped
public class AppContext {
public AppContext() {
}
}
Das Ausnahmeprotokoll ist als unten:
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
Auch WEB-INF \ beans.xml ist wie folgt:
Anwendung auf:
JDK 1.8 b121;
Mojarra JSF 2.2;
WebLogic 12.2.1.1;
Jeder Hinweis auf dieses Problem Festsetzung hoch geschätzt wird.
suchen Sie nach Link kann Ihnen helfen http://StackOverflow.com/Questions/10994158/Difference-Winter-Namen-und-Managedbean-annotations-in-Jsf2-0-Tomcat7 –
Nur vom ersten Blick - die Ausnahme sagt Es gibt zwei Beans mit demselben Namen ("appContext"). Versuchen Sie, Ihrer Bean einen benutzerdefinierten Namen zu geben. Z.B. '@ Named (" myAppContextBean ") und sehen, was passiert. – Siliarus
Danke @Siliarus! Ich habe Ihren Vorschlag versucht, aber immer noch dieselbe Fehlermeldung erhalten. Es hat definitiv etwas anderes zu tun, als die eigentliche Fehlermeldung angezeigt zu bekommen. –