2016-11-30 106 views
1

我有一個部署到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綁定?

+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

嘗試在各種模塊部署描述符(ejb-jar)中的application.xml和' ...中設置' ... .xml和web.xml)。確保這些DD中包含Java EE 7版本。 –

回答