我有一個部署到WebSphere Liberty 8.5的ear
應用程序。該應用程序包含一個EJB模塊,我在其中聲明瞭一些EJB。我EJB是通過以下方式宣佈:如何更改WebSphere Liberty中的EJB JNDI綁定
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
文件中完成。我在我的EJB模塊jar
文件的META-INF
目錄中有一個ibm-ejb-jar-bnd.xml
文件。該文件包含以下配置:
<session name="MyEjbBean" simple-binding-name="my/new/jndi/name"></session>
然而,這樣的配置沒有任何影響:當我開始耳邊應用我仍然看到在日誌中默認的JNDI綁定。
我知道ibm-ejb-jar-bnd.xml
被WebSphere Liberty正確拾取,因爲當我在<session>
標記中指定錯誤的bean名稱時,我在WebSphere日誌中收到警告。
如何更改WebSphere Liberty中的EJB JNDI綁定?
這些名稱由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
嘗試在各種模塊部署描述符(ejb-jar)中的application.xml和' ... module-name>中設置' ... application- name> .xml和web.xml)。確保這些DD中包含Java EE 7版本。 –