O descritor de implementação específico do WebLogic para EJBs, weblogic-ejb-jar.xml, pode conter nomes JNDI para referências locais EJB definidas em ejb-jar.xml. Essas referências mapeiam uma referência local EJB para seu nome JNDI. Para que essas referências funcionem corretamente no WebSphere Application Server, as informações devem ser movidas para o arquivo de ligações do WebSphere Application Server.
Esta regra sinaliza referências locais EJB localizadas no arquivo weblogic-ejb-jar.xml. No scanner de origem, uma correção rápida é fornecida. Após a correção rápida ser aplicada, o XML do WebLogic é marcado com um comentário indicando que ele foi migrado. Isso é utilizado para determinar se a correção rápida deve ser executada, e se ela pode ser utilizada no final da migração para indicar quanto do arquivo XML foi migrado.
Quando a correção rápida for aplicada, o nome JNDI será
copiado do arquivo weblogic-ejb-jar.xml para o
arquivo de ligações EJB do WebSphere tradicional e do Liberty.
Por exemplo, o exemplo a seguir mostra MyBean2 definindo uma referência para MyBean.
Primeiro, o <ejb-local-ref> é definido no arquivo 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> |
Em seguida, o nome JNDI <ejb-local-ref> correspondente será definido no arquivo weblogic-ejb-jar.xml:
|
<weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>MyBean</ejb-name> <jndi-name>ejb.MyBean</jndi-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>MyBean2</ejb-name> <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> |
A correção rápida inclui o nome JNDI ejb.MyBean no arquivo de ligações e o
associa à referência local ejb/MyBean para MyBean2.
Se o arquivo de ligação não existir, um novo será criado.
No código Java, o contexto de nomenclatura pode ser referenciado no seguinte exemplo:
|
javax.naming.Context ctx = new javax.naming.InitialContext(); Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean"); |