2011-12-03 2 views
3

글래스 피쉬 3.1에서 CDI를 평가하려고하는데 코드를 분할하려고 할 때 제대로 작동하도록 만들었지 만 별도의 배포 모듈에서 이상한 오류가 발생합니다. 더 구체적으로 :GlassFish 3.1.1 b12의 CDI가 "WELD-001408 만족하지 못하는 종속성"을 생성 함

같은 유틸리티 프로젝트에 두 개의 클래스가 번들로 제공됩니다 (CommonLib.jar라고 가정 해 봅시다). 클래스 이름은 UserDatabaseUserDatabaseEntityManager이며 그 정의는 다음과 같습니다 (이 메시지 끝 부분의 PS 참조). 또한 EJB3.1 모듈이있는 EAR도 있습니다. 나는 EAR의 "동봉 도서관"으로 CommonLib.jar를 선택하여 배포 할 때

는, 나는 다음과 같은 오류 얻을 : 나는 또한 얻을 위와 같이

Error occurred during deployment: Exception while loading the app : WELD-001408 Unsatisfied dependencies for type [ EntityManager ] with qualifiers [ @UserDatabase ] at injection point [[field] @UserDatabase @Inject com.test.TestEJB.itemPersistenceEm ]. Please see server.log for more details.

같은 오류가 나는 CommonLib.jar 등을 배포 할 때 공유 라이브러리 ($glasshfish_installation_path/domains/domain1/lib 아래 복사 된 jar 파일) 하지만 EJB 프로젝트에서 두 클래스 (UserDatabaseUserDatabaseEntityManager) 만 가지면 (EJB 모듈 내에서 컴파일되므로) 제대로 작동합니다.

클래스 로더 문제가 있습니까? 내가이 문제를 어떻게 극복 할 수 있는지에 대한 아이디어가 있습니까?

답변

0

우리가 발견 한 Glassfish CDI 통합 문제가있는 것 같아 while working on Seam 3. 그것들 중 몇 가지가 될 수 있으므로, 어떤 것이 있는지보아야합니다. JBoss AS7 또는 Apache TomEE에서 테스트 해보고 여전히 문제가 있는지 확인하십시오. 내가 몇 일 전에 글래스 피시와 CDI와 매우 비슷한 문제에 직면하기 때문에

3

그냥 추측 : CDI는 모두를 검색하도록 당신의 CommonLib.jar에서 즉 beans.xml 모든에서 JAR,와 EJB JAR이 있습니까 그들?

내 문제는을 EAR에 배치하는 것으로 충분하다고 생각했기 때문에 발생했습니다. 이는 사실이 아닙니다.

+1

방금 ​​밤새 내 목숨을 구하십시오. 전쟁에 포함 된 ejb-jar의 인터페이스는 5 시간 동안 해결되지 않았습니다. 이제 집에 갈 수 있습니다. 사랑해. 너 나와 결혼 해 줄래? –