У меня есть приложение ear
, которое развертывается в WebSphere Liberty 8.5. Приложение включает модуль EJB, в котором я объявил несколько EJB. Мои EJBs объявлены следующим образом:Как изменить привязки EJB JNDI в WebSphere Liberty
public interface MyEjb...
@Local
public interface MyEjbLocal extends MyEjb...
@Remote
public interface MyEjbRemote extends MyEjb...
@Stateless
public class MyEjbBean implements MyEjbLocal, MyEjbRemote...
При запуске приложения я могу видеть в WebSphere Либерти журнала, что EJB получает следующие JNDI имен:
java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbLocal,
java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbRemote
мне нужно изменить эти имена. Если я правильно ее понимаю, это можно сделать в файле ibm-ejb-jar-bnd.xml
. У меня есть файл ibm-ejb-jar-bnd.xml
в каталоге META-INF
моего модуля EJB jar
. Этот файл содержит следующую конфигурацию:
<session name="MyEjbBean" simple-binding-name="my/new/jndi/name"></session>
Однако, эта конфигурация не имеет никакого эффекта: когда я запустить приложение уха я все еще вижу JNDI по умолчанию привязок в журнале.
Я знаю, что ibm-ejb-jar-bnd.xml
правильно подобрал WebSphere Liberty, потому что, когда я указываю неправильное имя компонента в теге <session>
, я получаю предупреждение в журнале WebSphere.
Как изменить привязки EJB JNDI в WebSphere Liberty?
Эти названия являются обязательными в спецификации Java EE. Зачем вам их менять? Что вы пытаетесь достичь здесь? –
@Steve Фактическое связывание JNDI выглядит следующим образом: 'java: global/my-ear-app-name-1.2.3/my-ejb-module-name-1.2.3/MyEjbBean! My.package.name.MyEjbLocal '. И имя приложения, и имя модуля EJB включают текущую версию. Таким образом, привязка изменяется каждый раз, когда изменяется версия. – Alexey
Попробуйте установить '<имя-приложения> ... application-name>' в application.xml и ' ... module-name>' в различных дескрипторах развертывания модулей (ejb-jar .xml и web.xml). Убедитесь, что у этих DD есть версии Java EE 7. –