2017-03-15 2 views
0

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.

+1

suchen Sie nach Link kann Ihnen helfen http://StackOverflow.com/Questions/10994158/Difference-Winter-Namen-und-Managedbean-annotations-in-Jsf2-0-Tomcat7 –

+1

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

+0

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. –

Antwort

0

Ich konnte schließlich bereitstellen.

Allerdings musste ich die WAR aus EAR entfernen und separat bereitstellen. Aus irgendeinem Grund schlägt das Packen der WAR in der EAR und die Bereitstellung fehl. Nicht sicher, ob dies ein Problem mit der WebLogic- oder EAR-Konfiguration ist.

Verwandte Themen