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

Specyficzny dla serwera WebLogic deskryptor wdrażania dla komponentów EJB (weblogic-ejb-jar.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 powoduje oznaczenie lokalnych odwołań do komponentów EJB znalezionych w pliku weblogic-ejb-jar.xml. Zostanie dostarczona automatyczna poprawka. Po zastosowaniu automatycznej poprawki xML WebLogic jest oznaczony komentarzem wskazującym, że został zmigrowany. Służy do określenia, czy należy uruchomić automatyczną poprawkę, i może być używana na końcu migracji, aby wskazać, jaka część pliku XML została zmigrowana.

Gdy stosowana jest automatyczna poprawka, nazwa JNDI jest kopiowana z pliku weblogic-ejb-jar.xml do pliku WebSphere tradycyjnego i Liberty pliku powiązań 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 plik:

< 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 weblogic-ejb-jar.xml:


< weblogic-ejb-jar>
< span class= "indent2"> < /span> < weblogic-enterprise-bean>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</weblogic-enterprise-bean>
< span class= "indent2"> < /span> < weblogic-enterprise-bean>
<ejb-name>MyBean2</ejb-name>
< span class= "indent4"> < /span> < 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>

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");