글래스 피쉬 3.1에서 CDI를 평가하려고하는데 코드를 분할하려고 할 때 제대로 작동하도록 만들었지 만 별도의 배포 모듈에서 이상한 오류가 발생합니다. 더 구체적으로 :GlassFish 3.1.1 b12의 CDI가 "WELD-001408 만족하지 못하는 종속성"을 생성 함
같은 유틸리티 프로젝트에 두 개의 클래스가 번들로 제공됩니다 (CommonLib.jar
라고 가정 해 봅시다). 클래스 이름은 UserDatabase
과 UserDatabaseEntityManager
이며 그 정의는 다음과 같습니다 (이 메시지 끝 부분의 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 seeserver.log
for more details.
같은 오류가 나는 CommonLib.jar 등을 배포 할 때 공유 라이브러리 ($glasshfish_installation_path/domains/domain1/lib
아래 복사 된 jar 파일) 하지만 EJB 프로젝트에서 두 클래스 (UserDatabase
및 UserDatabaseEntityManager
) 만 가지면 (EJB 모듈 내에서 컴파일되므로) 제대로 작동합니다.
클래스 로더 문제가 있습니까? 내가이 문제를 어떻게 극복 할 수 있는지에 대한 아이디어가 있습니까?
방금 밤새 내 목숨을 구하십시오. 전쟁에 포함 된 ejb-jar의 인터페이스는 5 시간 동안 해결되지 않았습니다. 이제 집에 갈 수 있습니다. 사랑해. 너 나와 결혼 해 줄래? –