Специальный файл описания JBoss для EJB, jboss.xml, может содержать имена JNDI для локальных ссылок на EJB, определенных в ejb-jar.xml. Таким образом определяется связь между локальной ссылкой на EJB и именем JNDI. Для того чтобы эти связи правильно работали в WebSphere Application Server, информацию необходимо перенести в файл привязок WebSphere Application Server.
Это правило отмечает локальные ссылки на EJB, содержащиеся в файле jboss.xml, если соответствующее быстрое исправление в сканере исходного кода еще ни разу не применялось. После применения быстрого исправления в XML JBoss добавляется комментарий о том, что информация была перенесена. Это позволяет определить, нужно ли выполнять быстрое исправление, и может применяться в конце миграции для определения того, какая часть файла XML была перенесена.
Процедура быстрого исправления копирует имя JNDI из файла jboss.xml в файл привязок EJB WebSphere.
Например, приведенный ниже MyBean2 определяет ссылку на MyBean.
Вначале определяется элемент <ejb-local-ref> в файле 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> |
Затем имя JNDI, соответствующее <ejb-local-ref>, определяется в файле 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> |
Процедура быстрого исправления добавляет имя JNDI ejb.MyBean в файл привязок и связывает его с локальной ссылкой ejb/MyBean в MyBean2.
Если файл привязок не существует, то он создается.
В коде на Java контекст именования можно указать, как показано в следующем примере:
|
javax.naming.Context ctx = new javax.naming.InitialContext(); Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean"); |