문제

OC4J 10.1.2.3에서 10.1.3.1.4에서 마이그레이션하는 데 문제가 있습니다. 문제는 여러 EJB가있는 응용 프로그램에 대한 문제입니다 (모두 2.1, EJB 3.0 없음). JDeveloper는 기본 EJB-Jar.xml (JDeveloper가 독립형 OC4J 인스턴스에서 실행하는 데 필요한 것)을 가져 와서 무엇을 상관없이 각 EJB JAR 모듈에 패키지를 가져옵니다. 이로 인해 배포 할 때 앱 서버가 각 EJB JAR 모듈로 드릴링하고 동일한 EJB-JAR.XML 파일 N 회 (여기서 n = EJB 모듈의 수)를 찾습니다. 이로 인해 EJB 참조가 중복되며 "Java : Comp/Env/EJB/Ejbname"과 같은 JNDI 조회를 중단합니다. 따라서 3 개의 EJBS, EJB1, EJB2 및 EJB3이있는 앱을 배포하면 앱 서버가 3 대신 9 개의 EJB를 등록하게됩니다. 모범 사례가 필요하지만 10.1.3.4와 jdeveloper가 상황이 다소 끔찍한 방식으로 ...

참고 : 웹 앱의 JNDI 조회 코드가 "ejb/ejbname"으로 굴절되면 작동합니다. 그래도 이것은 바람직하지 않습니다.

도움이 되었습니까?

해결책 2

문제는 배포 프로파일에서 다중 참조였습니다. 우리는 각 EJB에 대한 배포 프로파일을 만들었습니다. 이는 각 EJB에 자체 EJB-Jar.xml이 있음을 의미했습니다 (이 파일은 프로젝트의 모든 EJB에 대한 설명이 포함되어 있음). 따라서 JDeveloper가 EJB를 만들 때마다 생성 된 각 EJB에 모든 EJB의 설명자를 배치하여 NXN 양의 참조를 유발합니다. 따라서 NX (N-1) 추가 참조.

이제 핵심 요점은 Oracle Application Server 10.1.2.3.0과 Bellow가 이러한 중복 참조에 신경 쓰지 않았다는 것입니다. 그러나 우리가 볼 수 있듯이 10.1.3.1.4는 훨씬 다른 버전이며 이것은 깨졌습니다.

우리의 수정 사항 : 모든 EJB 클래스와 그들이 사용하는 Pojo가 포함 된 1 개의 EJB 배포 프로파일 만 갖습니다. 각 EJB에 대해 1 개의 EJB 프로파일이 있기 전에 ...이 모든 것은 JDeveloper (Crap IMHO)가 허용하는 것이 었습니다. 바르게 유효한 귀를 생성하십시오. JDeveloper와 Oracle의 애플리케이션 서버의 쓰레기의 조합이 그 원인입니다.

다른 팁

귀하의 사례를 확인하려면 Oracle 문서를 확인해야합니다. J2EE Enterprise Javabeans Developer 's Guide 용 Oracle® 컨테이너는 J2EE 서비스 안내서를위한 Oracle® 컨테이너에 따르면 좋은 출발입니다. 2 장 : JNDI 사용 "EJB/EJBName"형식을 사용할 때 "로컬"조회를 수행합니다. 전체 양식을 사용하려면 "JNDI 사용"장의 "글로벌 JNDI 조회 활성화"섹션을 확인해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top