В приложениях WebLogic и JBoss элемент <local-jndi-name> определяет имя JNDI для локального домашнего расположения объекта в глобальном дереве JNDI. Он задается в файле weblogic-ejb-jar.xml или jboss.xml.
WebSphere(R) не поддерживает связи локальных расположений с именами JNDI в глобальном дереве JNDI. Вместо них используются связи с деревом JNDI локального контейнера. Из-за этого программисты должны обращаться к локальным EJB, используя имя JNDI в локальном пространстве имен, а не имя JNDI в глобальном пространстве имен.
Это правило применяется при обнаружении элемента <local-jndi-name> в weblogic-ejb-jar.xml или jboss.xml. В сканере исходного кода доступно быстрое исправление. Быстрое исправление обрабатывает файлы Java, файлы описания и привязки, чтобы соответствующие ссылки работали в WebSphere.
Обрабатываются все пакеты, связанные с приложением, в котором найден элемент <local-jndi-name>. В том случае, если проект EAR приложения не найден или не связан с проектом EJB, обрабатывается только проект EJB. Важно, чтобы все связанные проекты были определены правильно.
При запуске быстрого исправления в сканере исходного кода выполняется проверка всех файлов Java в приложении, где был найден элемент <local-jndi-name>. Выполняется поиск прямых операций поиска локального имени JNDI в контексте, которые заменяются на поиск ссылки EJB.
Например, если локальное имя JNDI равно ejb/myBeanLocalHome, то следующий пример кода потребует обновления кода, файлов описания и привязок.|
ctx.lookup("ejb/myBeanLocalHome"); ctx.lookup("java:comp/ejb/myBeanLocalHome"); ctx.lookup(myBeanLocalHomeNameVariable); |
В первом примере код Java изменяется на ctx.lookup("java:comp/ejb/myBeanLocalHome") для выполнения поиска ссылки EJB. Другие два примера кода Java не изменяются. Во всех трех случаях быстрое исправление обновляет файлы описания и привязки проекта.
При обнаружении поиска определенного локального имени JNDI с использованием переменной, который не удается правильно распознать, в файл web.xml или ejb-jar.xml добавляется элемент <ejb-local-ref> для EJB, определяющего локальное имя JNDI. В случае проекта EJB элемент <ejb-local-ref> добавляется в каждый EJB, который определен в ejb-jar.xml. В случае файла web.xml добавляется одно вхождение для EJB, в котором определено локальное имя JNDI. В обоих случаях имя JNDI <ejb-local-ref> добавляется в файл привязок проекта.