2017-09-07 12 views
0

내 beans.xml의 위치에 따라 프로젝트 CDI는 lib에있는 @Named 주석이있는 클래스에서 작동합니다 jars 또는 주 프로젝트에서 발견 된 @Alternative 주석이있는 클래스의 경우. 나는 둘 다 일하기 위해 그들을 둘 곳을 알아낼 수 없다.CDI WELD 프로젝트의 WEB-INF에있는 META-INF의 Beans.xml

빌드시 일부 @Default 주석이있는 클래스와 일부 @Named 주석이있는 클래스가있는 core.jar가 있습니다.

core.jar은 내 프로젝트의 web-inf/lib에 있습니다. 환경 빌드에 따라 해당 프로젝트에서

, 나는 (WEB-INF에) 웹 프로젝트의 beans.xml 환경에 지정된 일부 @Alternative 주석 클래스를 사용

그래서, 2 beans.xml 환경이 모두

(지정된 대안) 구축 프로젝트 lib에 배치 및 배치됩니다 전쟁 프로젝트의 WEB-INF에 1 인 core.jar를의 META-INF에

1 beanhandler는 해당 위치에서 beans.xml 파일을 찾지 못하면 beans.xml에 지정된 대안을 찾지 못합니다 (

항아리 종속성 및 재배포에서 META-INF에서 beans.xml을 제거하면 대안이 잘 작동하지만 (이상하게) @Named 주석이 달린 클래스는 더 이상 발견되지 않습니다. ...

아이디어가 있으십니까?

답변

0

당신이 시도 할 수 : alternatives에 설명 된대로

From CDI 1.1 onwards the alternative can be enabled for the whole 
application using @Priority annotation. 

는 당신이 대안을 활성화 점으로 beans.xml 환경에 의존 할 필요가 없습니다 것입니다.