Použít vazby WebSphere k definování názvů rozhraní JNDI lokálního odkazu EJB

Deskriptor implementace specifický pro JBoss pro objekty EJB, jboss.xml, může obsahovat názvy rozhraní JNDI pro lokální odkazy EJB definované v souboru ejb-jar.xml. Tyto odkazy mapují lokální odkaz EJB na příslušný název rozhraní JNDI. Aby odkazy pracovaly správně na serveru WebSphere Application Server, musí být informace přesunuty do vázacího souboru aplikačního serveru WebSphere Application Server.

Toto pravidlo označí lokální odkazy EJB nalezené v souboru jboss.xml, pokud nebyla odpovídající rychlá oprava ve zdrojovém skeneru již použita. Po použití rychlé opravy je JBoss XML označen komentářem označující, že byl migrován. Používá se k určení toho, zda má být spuštěna rychlá oprava, a lze ji použít na konci migrace k označení, jak velká část souboru XML byla migrována.

Je-li použita rychlá oprava, bude název rozhraní JNDI zkopírován ze souboru jboss.xml do vázacího souboru WebSphere EJB. Příklad: Následující příklad zobrazuje MyBean2 definující odkaz na objekt MyBean. Nejdříve je <ejb-local-ref> definován v souboru 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>

Potom je odpovídající název rozhraní JNDI <ejb-local-ref> definován v souboru jboss.xml:


<jboss>
<enterprise-beans>
<session>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</session>
<session>
<ejb-name>MyBean2</ejb-name>
<jndi-name>ejb.MyBean2</jndi-name>
<ejb-local-ref>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<local-jndi-name>ejb.MyBean</jndi-name>
</ejb-local-ref>
</session>
</enterprise-beans>
</jboss>

Rychlá oprava přidá název rozhraní JNDI ejb.MyBean do vázacího souboru a přidruží jej k lokálnímu odkazu ejb/MyBean pro MyBean2. Pokud vázací soubor neexistuje, bude vytvořen.

V rámci kódu Java lze na kontext pojmenování odkazovat jako v následujícím příkladu:

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