2016-11-30 13 views
1

У меня есть приложение 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?

+1

Эти названия являются обязательными в спецификации Java EE. Зачем вам их менять? Что вы пытаетесь достичь здесь? –

+0

@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

+2

Попробуйте установить '<имя-приложения> ...' в application.xml и ' ...' в различных дескрипторах развертывания модулей (ejb-jar .xml и web.xml). Убедитесь, что у этих DD есть версии Java EE 7. –

ответ

2

Мое понимание состоит в том, что имя простого связывания игнорируется в файлах ibm-ejb-jar-bnd.xml для WebSphere Liberty.

Он упоминается в ниже документ (поиск по «простой привязки»): http://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.doc/ae/rwlp_restrict.html

+0

Спасибо за подсказку. Как я могу изменить привязки JNDI? – Alexey