Привязки EJB для WebSphere Liberty - PullRequest
0 голосов
/ 13 марта 2020

Я работаю над переносом ушного приложения с WebSphere 8.5 на свободу.

В рамках изменений я заменил привязки JNDI (в поисках) на java пространства имен

например,

ejb/abc/cde/TestHome  
ejblocal:ejb/qwe/ret/AbcHome  

заменены на java пространства имен, аналогичные

java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbLocal

Но в некоторых местах кода есть такие поиски, как

.lookup("com.abc.cde.Test");

Являются ли эти поиски локальными с java пространствами имен?

Как справиться с этими поиски? Должен ли я добавить java пространство имен, например java: global / java: app et c?

1 Ответ

1 голос
/ 13 марта 2020

Как вы заметили, традиционные пользовательские привязки WebSphere JNDI в настоящее время не работают в Liberty. Для дальнейшего использования в настоящее время мы работаем над тем, чтобы заставить их работать в Liberty, чтобы облегчить миграцию в будущем. (https://github.com/OpenLiberty/open-liberty/issues/7918)

Поиск, который вас смущает (InitialContext.lookup("com.abc.cde.Test");) - это то, что мы назвали краткой связью по умолчанию для удаленного компонента, который является просто удаленным интерфейсом.

Правильно заменить их поисками в пространстве имен Java со следующими шаблонами:

  • java:global/<appname>/<modulename>/<bean>!<interface>
  • java:app/<modulename>/<bean>!<interface>
  • java:module/<bean>!<interface>

    • Примечание: <interface> - это полное имя интерфейса, включая пакет
    • Примечание 2: для вызова java:app или java:module находиться в том же приложении или модуле, что и bean-компонент.

Также, если вы запускаете сервер Liberty, мы распечатываем глобальную привязку java:: CNTR0167I:

Для справки: старые привязки по умолчанию, которые еще не работают:

  • Локальная длинная форма: ejblocal:<appname>/<modulename>.jar/<bean>#<interface>
  • Локальная короткая форма: ejblocal:<interface>
  • Удаленная длинная форма: ejb/<appname>/<modulename>.jar/<bean>#<interface>
  • Удаленная короткая форма: <interface>

Есть также несколько старых пользовательских форм привязок, которые можно указать через ab исходный файл, такой как ejb-jar-bnd.xml, который в настоящее время будет иметь ту же стратегию миграции, но я не буду go во всех различных стилях, если вы не столкнетесь с ними. Безопасная ставка заключается в том, что если он ищет компонент с поиском, который не является пространством имен java, просто замените его на java: global.

...