Używaj powiązań produktu WebSphere do definiowania nazw JNDI lokalnych odwołań do komponentów EJB

Specyficzny dla serwera JBoss deskryptor wdrażania dla komponentów EJB (jboss.xml) może zawierać nazwy JNDI dla lokalnych odwołań do komponentów EJB zdefiniowanych w pliku ejb-jar.xml. Odwołania te odwzorowują lokalne odwołanie do komponentu EJB na jego nazwę JNDI. Aby te odwołania działały poprawnie na serwerze WebSphere Application Server, należy przenieść informacje do pliku powiązań serwera WebSphere Application Server.

Ta reguła oznacza lokalne odniesienia EJB znalezione w pliku jboss.xml pliku, gdy automatyczna poprawka stanie się dostępna, JBoss XML zostanie oznaczony komentarzem wskazującym, że został zmigrowany. Służy do określenia, czy uruchomić automatyczną poprawkę, i może być użyty na na końcu migracji, aby wskazać, jaka część pliku XML została zmigrowana.

Gdy automatyczna poprawka stanie się dostępna, nazwa JNDI zostanie skopiowana z pliku jboss.xml do pliku powiązań WebSphere EJB. Na przykład w poniższym przykładzie przedstawiono komponent MyBean2 definiujący odwołanie do komponentu MyBean. Po pierwsze, <ejb-local-ref> jest zdefiniowany w pliku ejb-jar.xml pliku:

< span class="Code"> < ejb-jar>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < sesja>
<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>Bezstanowy</session-type>
<transaction-type>Kontener</transaction-type>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < jndi-name>ejb.MyBean< /ejb-name>
...
</session>
< span class= "indent4"> < /span> < sesja>
<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>Bezstanowy</session-type>
<transaction-type>Kontener</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>Sesja</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>

Następnie odpowiadająca mu nazwa JNDI <ejb-local-ref> jest definiowana w pliku jboss.xml:


< jboss>
< span class= "indent2"> < /span> < enterprise-beans>
< span class= "indent4"> < /span> < sesja>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</session>
< span class= "indent4"> < /span> < sesja>
<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>

Automatyczna poprawka doda nazwę ejb.MyBean Nazwę JNDI do pliku powiązań i skojarzy ją z ejb/MyBean lokalnym odniesieniem dla MyBean2. Jeśli plik powiązań nie istnieje, zostanie utworzony nowy.

W kodzie Java kontekst nazewnictwa może być przywoływany tak, jak w następującym przykładzie:

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