Не использовать локальные имена JNDI

В приложениях 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 , следующие примеры кода вызывают обновления кода, дескрипторов развертывания и привязок.

Примеры поиска Java:

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> для боба который определил локальное имя JNDI. В случае проекта EJB, элемент <ejb-local-ref> добавляется к каждому бобу, который определен в ejb-jar.xml. В случае файла web.xml добавляется одна ссылка для боба, который определил локальное имя JNDI. В обоих случаях имя JNDI <ejb-local-ref> добавляется в файл привязок для проекта.