2012-01-10 7 views
4

4 개의 모듈이있는 엔터프라이즈 응용 프로그램 프로젝트가 있습니다. WLS 10.3.4에 배포됩니다. 나는 일식에 대한 오라클 웹 도구 개발을 위해 이클립스 helios를 사용하고있다. 내 컴퓨터의 로컬 WLS가 개발 모드로 설치됩니다. 프로젝트WLS 10.3.4 - xxx_EJB.jar 범위에서 'xxx'라는 지속성 장치를 사용할 수 없습니다. 사용 가능한 영속성 단위 : []

구성이 같다 :

xxx_EAR 
|-> xxx_JPA 
|-> xxx_EJB 
|-> xxx_EJBClient 
|-> xxx_WEB 

공통 항아리 모듈 xxx_EAR/APP-INF/lib에있는 건너 것을 사용하는

xxx_JPA 내부

세 지속성 단위의 persistence.xml이다 , xxx_EJB에서는 @PersistentContext를 사용하여 참조하는 클래스, Bean입니다.

EJB version is 3.0 
JPA is 1.0 (Eclipselink 1.1.x) 

모든 것이 로컬로 컴퓨터에서 작동합니다. 내가 보는 바와 같이 나는 서버 사이에, 다음과 같은 예외

Unable to deploy EJB: XxxFacadeImpl from xxx_EJB.jar: 

No persistence unit named 'xxx_EJB' is available in scope xxx_EJB.jar. Available persistence units: [] 
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:469) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199) 
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:518) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) 
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159) 

...

유일한 차이납니다 테스트 WLS에 EAR 파일을 배포 할 때 설치 모드에 테스트 WLS가 설치됩니다 생산 모드.

어떤 힌트가 있습니까?

미리 감사드립니다.

답변

0

서버의 버전이 동일합니까? JPA jar에있는 모든 것을 EJB jar에 넣으면 어떻게됩니까?

+0

모든 모듈을 ejb 모듈에 넣으면 작동합니다. xxx_EJB와 xxx_WEB라는 두 개의 모듈 만 있으면. 하지만 레이어를 분리해야합니다. 그래서 두 개의 모듈, persistence와 EJBClient를위한 JPA를 만들었습니다.이 경우 테스트 서버에 귀를 배치하는 동안 오류가 발생했습니다. – Kenny

0

나는 같은 오류가 있었지만 그 반대였다. EAR을 프로덕션에 배치하거나 WebLogic 콘솔에서 배치하면 좋지만 Eclipse Weblogic 플러그인을 통해 로컬로 배치 할 수는 없습니다. 나에게 효과가 있었던 것은 EJB 프로젝트의 빌드 경로에서 javax.persistence_xxx.jar의 버전을 변경하는 것이었다.

제 경우에는 javax.persistence_1.xxx에서 javax.persistence_2.xxx로 변경됩니다.

희망이 있으면 누군가에게 도움이됩니다. 이 문제에 대한 해결책을 찾기 위해 아래에서 링크를 클릭하면 도움이되었습니다.

http://www.coderanch.com/t/578851/EJB-JEE/java/persistence-unit-named-scope-BL