WebSphere 바인딩을 사용하여 EJB 로컬 참조 JNDI 이름 정의

EJB용 WebLogic 특정 배치 디스크립터인 weblogic-ejb-jar.xml에는 ejb-jar.xml에 정의된 EJB 로컬 참조의 JNDI 이름이 포함될 수 있습니다. 이 참조는 EJB 로컬 참조를 JNDI 이름에 맵핑합니다. 이 참조가 WebSphere Application Server에서 올바르게 작동하려면 WebSphere Application Server 바인딩 파일로 정보를 이동해야 합니다.

이 규칙은 weblogic-ejb-jar.xml 파일에서 찾은 EJB 로컬 참조를 플래그 지정합니다. 소스 스캐너에서 빠른 수정사항이 제공됩니다. 빠른 수정사항이 적용된 후에는 마이그레이션되었음을 알리는 주석으로 WebLogic XML이 표시됩니다. 이것은 빠른 수정사항을 실행할지 여부를 판별하는데 사용되며, 마이그레이션 종료 시 XML 파일이 얼마나 마이그레이션되었는지 표시하도록 사용할 수 있습니다.

빠른 수정사항이 적용되는 경우, JNDI 이름이 weblogic-ejb-jar.xml 파일에서 WebSphere traditional 및 Liberty EJB 바인딩 파일로 복사됩니다. 예를 들어, 다음 예제는 MyBean 참조를 정의하는 MyBean2를 표시합니다. 먼저, <ejb-local-ref>ejb-jar.xml 파일에 정의되어 있습니다.

<ejb-jar>
<enterprise-beans>
<session>
<display-name>MyBean</display-name>
<ejb-name>MyBean</ejb-name>
<home>com.ibm.ejb.MyBeanHome</home>
<remote>com.ibm.ejb.MyBean</remote>
<ejb-class>com.ibm.ejb.MyBeanBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<jndi-name>ejb.MyBean</ejb-name>
...
</session>
<session>
<display-name>MyBean2</display-name>
<ejb-name>MyBean2</ejb-name>
<home>com.ibm.ejb.MyBean2Home</home>
<remote>com.ibm.ejb.MyBean2</remote>
<ejb-class>com.ibm.ejb.MyBean2Bean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<description></description>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.ibm.ejb.MyBeanHome</local-home>
<local>com.ibm.ejb.MyBean</local>
</ejb-local-ref>
<jndi-name>ejb.MyBean2</ejb-name>
...
</session>
<enterprise-beans>
<ejb-jar>

그리고, 대응되는 <ejb-local-ref> JNDI 이름은 weblogic-ejb-jar.xml 파일에 정의되어 있습니다.


<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</weblogic-enterprise-bean>
<weblogic-enterprise-bean>
<ejb-name>MyBean2</ejb-name>
<ejb-local-reference-description>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<jndi-name>ejb.MyBean</jndi-name>
</ejb-local-reference-description>
<jndi-name>ejb.MyBean2</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>

빠른 수정사항은 ejb.MyBean JNDI 이름을 바인딩 파일에 추가하고 MyBean2ejb/MyBean 로컬 참조와 연관시킵니다. 바인딩 파일이 없는 경우, 한 개의 파일이 작성됩니다.

Java 코드에서는 이름 지정 컨텍스트를 다음 예제에서처럼 참조할 수 있습니다.

javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");