2017-03-15 7 views
0

WebLogic Application Server에서 JSF 2.2에서 실행되는 웹 응용 프로그램이 있습니다.CDI 빈 이름 초기화가 모호합니다.

나는 간단한 자바 클래스를 가지고 있으며이를 CDI를 사용하여 ApplicationScoped 객체로 초기화하려고한다. 아래의 코드는 잘 작동하고 배포됩니다. 내가 @Named 주석 객체를 초기화 할 때

import javax.enterprise.context.ApplicationScoped; 

@ApplicationScoped 
public class AppContext { 
    public AppContext() { 
    } 
} 

는 그러나 그렇게도

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은 다음과 같습니다.

실행 0

응용 프로그램 :이 문제를 해결에 대한 어떤 힌트 매우 감사

JDK 1.8 b121; 
Mojarra JSF 2.2; 
WebLogic 12.2.1.1; 

.

+1

링크를 찾으면 도움이 될 수 있습니다. http://stackoverflow.com/questions/10994158/difference-between-named-and-managedbean-annotations-in-jsf2-0-tomcat7 –

+1

첫 번째 모습부터 - 예외는 다음과 같이 말합니다. 동일한 이름을 가진 두 개의 빈 ("appContext")이있다. 빈에 사용자 정의 이름을 지정해보십시오. 예 : '@Named ("myAppContextBean") 그리고 무슨 일이 일어나는 지보십시오. – Siliarus

+0

Thanks @Siliarus! 나는 당신의 제안을 시도했지만 여전히 같은 오류 메시지가 나타납니다. 실제 오류 메시지가 표시되는 것보다 분명히 다른 작업이 있습니다. –

답변

0

결국 배포 할 수있었습니다.

그러나 EAR에서 WAR를 제거하고 별도로 배포해야했습니다. 어떤 이유로 EAR에 WAR를 패키징하고 전개가 실패합니다. WebLogic 또는 EAR 구성에 문제가 있는지 확실하지 않습니다.