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

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

이 규칙은 파일에 있는 EJB 로컬 참조에 플래그를 지정합니다 jboss.xml 파일에 플래그가 지정됩니다, 자동화된 수정이 사용 가능해지면 JBoss XML에 마이그레이션되었음을 나타내는 주석이 표시됩니다. 이 값은 자동 수정 실행 여부를 결정하는 데 사용되며, 다음과 같은 경우에 사용할 수 있습니다 마이그레이션이 끝날 때 XML 파일의 마이그레이션된 양을 나타내는 데 사용할 수 있습니다.

자동화된 수정이 사용 가능해지면 JNDI 이름이 jboss.xml 파일에서 WebSphere EJB 바인딩 파일로 복사됩니다. 예를 들어, 다음 예제는 MyBean 참조를 정의하는 MyBean2를 표시합니다. 먼저, <ejb-local-ref>가 정의된 ejb-jar.xml 파일에 정의합니다:

< span class = "Code"> < ejb-jar>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < 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>컨테이너</transaction-type>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < jndi-name>ejb.MyBean< /ejb-name>
...
</session>
< span class= "indent4"> < /span> < 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>컨테이너</transaction-type>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < ejb-local-ref>
<description></description>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<ejb-ref-type>세션</ejb-ref-type>
<local-home>com.ibm.ejb.MyBeanHome</local-home>
<local>com.ibm.ejb.MyBean</local>
</ejb-local-ref>
< span class= "indent4"> < /span> < span class="indent2"><jndi-name>ejb.MyBean2</ejb-name>
...
</session>
< span class= "indent2"> < /span> < enterprise-beans>
< ejb-jar>

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


< jboss>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < session>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</session>
< span class= "indent4"> < /span> < session>
<ejb-name>MyBean2</ejb-name>
<jndi-name>ejb.MyBean2</jndi-name>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < ejb-local-ref>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
< span class= "indent4"> < /span> < span class="indent4"> < /span> < local-jndi-name>ejb.MyBean< /jndi-name>
</ejb-local-ref>
</session>
</enterprise-beans>
</jboss>

자동화된 수정은 바인딩 파일에 ejb.MyBean JNDI 이름을 바인딩 파일에 추가하고 를 바인딩 파일에 대한 ejb/MyBean 에 대한 로컬 참조 MyBean2. 바인딩 파일이 없는 경우, 한 개의 파일이 작성됩니다.

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

< span class="Code"> < span class= "indent4"> < /span>javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");