Utilizza bind WebSphere per definire i nomi JNDI del riferimento locale EJB

Il descrittore di distribuzione della specifica del descrittore di distribuzione JBoss per EJB, jboss.xml, potrebbe contenere nomi JNDI per i riferimenti locali EJB definito in ejb-jar.xml. Tali riferimenti associano un riferimento locale EJB al relativo nome JDNI. Perché questi riferimenti funzionino correttamente in WebSphere(R) Application Server, le informazioni devono essere spostate nei file di bind di WebSphere Application Server.

Questa regola contrassegna i riferimenti locali EJB rilevati nel file jboss-web.xml, se la correzione rapida nello scanner di origine corrispondente non è già stata applicata. Una volta applicata la correzione rapida, l'XML di JBoss XML viene contrassegnato con un commento che indica che è stato migrato. Viene utilizzato per determinare se eseguire la correzione rapida, e può essere utilizzato alla fine della migrazione per indicare quanto del file XML è stato migrato.

Una volta applicata la correzione rapida, il nome JNDI viene copiato dal file jboss.xml nei file di bind EJB WebSphere. Il seguente esempio mostra MyBean2 che definisce un riferimento a MyBean. Innanzitutto, viene definito <ejb-local-ref> nel file 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>

Quindi, nel file jboss.xml, viene definito il nome JNDI <ejb-local-ref> corrispondente:


<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>

La correzione rapida aggiunge il nome JNDI ejb.MyBean al file di bind e lo associa al riferimento locale ejb/MyBean per MyBean2. Se il file di bind non esiste, ne verrà creato uno.

Nel codice Java, è possibile fare riferimento al contesto di denominazione come nel seguente esempio:

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