2013-05-22 3 views
1

나는 다음과 같은 오류에 직면했다 퍼시스턴스 유닛을위한 엔티티 관리자 팩토리를 생성시, 7CWWJP0015E 오류 IBM WebSphere Application Server의 내 EJB 응용 프로그램을 시작할 때

JPAPUnitInfo E CWWJP0015E: An error occurred in the org.hibernate.ejb.HibernatePersistence persistence provider when it attempted to create the container entity manager factory for the *YOUR_PERSISTENCE_UNIT* persistence unit. The following error occurred: [PersistenceUnit: *YOUR_PERSISTENCE_UNIT*] class or package not found

WAS 당신이 당신의 엔티티 관리자를 얻을 때 최신, 당신이 오류가 표시됩니다

javax.ejb.EJBException: Injection failure; nested exception is: java.lang.IllegalStateException: EntityManagerFactory has not been created for PU : PuId=

당신이 웹에서 많은 해결책을 찾을 수 있도록 오류 메시지는 다른 오류 시나리오와 비슷하지만, 그들 중 누구도 월 적당한.

답변

1

참으로 오류 메시지 클래스 또는 패키지에서 찾을 수없는 힌트은 정확하지 않지만 누락 된 클래스 이름이 알려지지 않았기 때문에 도움이되지 않습니다.

제 경우에는 더 이상 존재하지 않았던 내 persistence.xml에 나열된 클래스가 있습니다.

이 다음 발견 할 것이다,이 오류 메시지가 어디에서 오는지, 참조 Ejb3Configuration.addNamedAnnotatedClasses(...) 좀보고 : 클래스를 찾을 수 없습니다

throw new PersistenceException(getExceptionHeader() + "class or package not found", cnfe); 

그래서 정보는 불행히도 cnfe ClassNotFoundException 만 사용할 수 있습니다 그것은 어떻게 든 로그 파일로 전달되지 않습니다.

정보에 액세스하려면 단순히 디버그 중단 점을 넣고 cnfe 개체를 검사하십시오.

+0

CNFException 정보 누락은 로그 수준 구성으로 인한 것일 수 있습니다. –

0

이 문제가 다시 발생하면 최근 정확한 정보를 찾을 수있는 간단한 방법이 있지만 간과하기가 쉽습니다.

이 예외의 정확한 로그는 WebSphere의 기본 SystemOut/Err 로그에 표시되지 않습니다. 그러나 ffdc 로그 (예 : % APP_PROGILE_PATH % \ logs \ ffdc)에서 찾을 수 있습니다.

[2/18/15 1:49:25:547 UTC] 0000004e FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on \IBM\AppSrv\logs\ffdc\server1_6d42a5e6_15.02.18_01.49.25.1322237127215208595734.txt com.ibm.ws.jpa.management.JPAPUnitInfo.createEMFactory 759

이 사건에 대한 정확한 파일 이름을 찾을 수있는 SystemOut.log에 CWWJP0015E 예외를 이전과 같은 항목에 대한

봐.

이 예외 항목이없는 경우 더 높은 로그 수준을 설정해보십시오. 그러나 기본 WebSphere 설정에는 필요하지 않습니다. 1. WebSphere 관리 콘솔> 문제점 해결> 로그 및 추적> 서버> 진단 추적> 로그 세부 사항 레벨 변경 2. "com.ibm.ws.jpa. *"의 로깅 레벨을 "모든 메시지 및 추적 " 3. WebSphere를 다시 시작하십시오.