Использовать привязки WebSphere для определения имен JNDI локальных ссылок на EJB

Специальный файл описания WebLogic для EJB, weblogic-ejb-jar.xml, может содержать имена JNDI для локальных ссылок на EJB, определенных в ejb-jar.xml. Таким образом определяется связь между локальной ссылкой на EJB и именем JNDI. Для того чтобы эти связи правильно работали в WebSphere Application Server, информацию необходимо перенести в файл привязок WebSphere Application Server.

Это правило отмечает локальные ссылки на EJB, содержащиеся в файле weblogic-ejb-jar.xml. Будет предоставлено автоматическое исправление. После того как автоматическое исправление будет WebLogic XML помечается комментарием, указывающим на то, что он был перенесен. Это значение используется для определения того, нужно ли запускать автоматическое исправление, и может использоваться в в конце миграции, чтобы указать, какая часть XML-файла была перенесена.

Когда применяется автоматизированное исправление, имя JNDI копируется из файла weblogic-ejb-jar.xml в WebSphere традиционный и Liberty файл привязки EJB. Например, приведенный ниже MyBean2 определяет ссылку на MyBean. Во-первых, <ejb-local-ref> определяется в ejb-jar.xml файл:

< span class="Code"> < ejb-jar>
< span class= "indent2"> < /span> < Enterprise-beans>
< span class= "indent4"> < /span> < 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>Без сохранения состояния</session-type>
<transaction-type>Контейнер</transaction-type>
< span class= "indent4"> < /span> < span class="indent2"> < /span> < jndi-name>ejb.MyBean< /ejb-name>
...
</session>
< span class= "indent4"> < /span> < 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>Без сохранения состояния</session-type>
<transaction-type>Контейнер</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>Сеанс</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>

Затем имя JNDI, соответствующее <ejb-local-ref>, определяется в файле 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>

Автоматическое исправление добавит ejb.MyBean Имя JNDI в файл привязок и свяжет его с ejb/MyBean локальной ссылкой для MyBean2. Если файл привязок не существует, то он создается.

В коде на Java контекст именования можно указать, как показано в следующем примере:

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