로컬 JNDI 이름 사용 안함

WebLogic 및 JBoss 애플리케이션에서 <local-jndi-name> 요소는 글로벌 JNDI 트리에 있는 Bean의 로컬 홈에 대한 JNDI 이름을 정의합니다. weblogic-ejb-jar.xml 또는 jboss.xml 파일에 정의됩니다.

WebSphere(R)는 글로벌 JNDI 트리에 있는 JNDI 이름에 대해 로컬 홈의 맵핑을 허용하지 않습니다. 대신, 로컬 컨테이너의 JNDI 트리에 맵핑됩니다. 따라서, 프로그래머는 글로벌 네임스페이스의 JNDI 이름이 아닌 로컬 네임스페이스의 JNDI 참조를 사용하여 로컬 엔터프라이즈 Bean에 액세스해야 합니다.

이 규칙은 <local-jndi-name> 요소가 weblogic-ejb-jar.xml 또는 jboss.xml에 있는 경우에 트리거됩니다. 소스 스캐너에서 빠른 수정사항을 사용할 수 있습니다. 빠른 수정사항은 Java 파일, 배치 디스크립터 및 바인딩을 처리하여 이러한 참조가 WebSphere에서 작동할 수 있게 합니다.

<local-jndi-name> 요소가 있는 애플리케이션에 관련된 모든 패키지가 처리됩니다. 애플리케이션 EAR 프로젝트가 발견되지 않거나 발견된 EJB 프로젝트에 연관되지 않는 경우, EJB 프로젝트만 처리됩니다. 관련 프로젝트를 올바르게 정의하는 것이 중요합니다.

소스 스캐너의 빠른 수정사항을 실행하는 경우 <local-jndi-name>이 있는 애플리케이션의 모든 Java 파일을 스캔합니다. 로컬 JNDI 이름에 대한 직접 컨텍스트 검색을 스캔하고 해당 이름에 대한 EJB 참조의 검색도 스캔합니다.

예를 들어, 로컬 JNDI 이름이 ejb/myBeanLocalHome인 경우 다음의 코드 예제가 코드, 배치 스크립터 및 바인딩 또는 이 모두의 업데이트를 트리거합니다.

Java 검색 예제:

ctx.lookup("ejb/myBeanLocalHome");

ctx.lookup("java:comp/ejb/myBeanLocalHome");

ctx.lookup(myBeanLocalHomeNameVariable);

Java 코드는 첫 번째 예제에서 ctx.lookup("java:comp/ejb/myBeanLocalHome")으로 변경되므로 EJB 참조 검색이 완료됩니다. 기타 두 개의 Java 예제는 변경되지 않습니다. 세 가지 모든 경우에서, 빠른 수정사항은 프로젝트의 배치 디스크립터 및 바인딩을 업데이트합니다.

프로젝트에서 특정 로컬 JNDI 이름이 발견되는 경우, 그리고 변수가 사용되고 발견을 판별할 수 없는 경우에는 web.xml 파일 또는 ejb-jar.xml 파일이 로컬 JNDI 이름에 정의된 Bean의 <ejb-local-ref>를 포함하도록 수정됩니다. EJB 프로젝트의 경우, <ejb-local-ref> 요소는 ejb-jar.xml에 정의된 각 Bean에 추가됩니다. web.xml 파일의 경우, 한 개의 참조가 로컬 JNDI 이름을 정의한 Bean에 추가됩니다. 이 두 가지 경우에 대해, <ejb-local-ref> JNDI 이름은 해당 프로젝트의 바인딩 파일에 추가됩니다.