Jakarta ee 如何在WebSphereLiberty中更改EJB JNDI绑定

Jakarta ee 如何在WebSphereLiberty中更改EJB JNDI绑定,jakarta-ee,ejb,websphere,jndi,websphere-liberty,Jakarta Ee,Ejb,Websphere,Jndi,Websphere Liberty,我有一个部署到WebSphereLiberty 8.5的ear应用程序。该应用程序包括一个EJB模块,我在其中声明了几个EJB。我的EJB以以下方式声明: public interface MyEjb... @Local public interface MyEjbLocal extends MyEjb... @Remote public interface MyEjbRemote extends MyEjb... @Stateless public class MyEjbBean imp

我有一个部署到WebSphereLiberty 8.5的
ear
应用程序。该应用程序包括一个EJB模块,我在其中声明了几个EJB。我的EJB以以下方式声明:

public interface MyEjb...

@Local
public interface MyEjbLocal extends MyEjb...

@Remote
public interface MyEjbRemote extends MyEjb...

@Stateless
public class MyEjbBean implements MyEjbLocal, MyEjbRemote...
当应用程序启动时,我可以在WebSphere Liberty日志中看到此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
我需要更改这些名称。如果我理解正确,可以在
ibmejbjarbnd.xml
文件中完成。我的ejb模块
jar
文件的
META-INF
目录中有一个
ibm ejb jar bnd.xml
文件。此文件包含以下配置:

<session name="MyEjbBean" simple-binding-name="my/new/jndi/name"></session>

但是,这种配置没有任何效果:当我启动ear应用程序时,我仍然可以在日志中看到默认的JNDI绑定

我知道WebSphereLiberty正确地拾取了
IBMEJBJARbnd.xml
,因为当我在
标记中指定了错误的bean名称时,我在WebSphere日志中得到了警告


如何在WebSphere Liberty中更改EJB JNDI绑定?

我的理解是,在WebSphere的ibm-EJB-jar-bnd.xml文件中忽略了简单绑定名称 自由

下面的文档中提到了它(搜索“简单绑定”):

谢谢你的提示。那么我如何更改JNDI绑定呢?这些名称是JavaEE规范要求的。你为什么要改变它们?你想在这里实现什么?@Steve实际的JNDI绑定如下所示:
java:global/my-ear-app-name-1.2.3/my-ejb-module-name-1.2.3/MyEjbBean!my.package.name.MyEjbLocal
。应用程序名称和EJB模块名称都包括当前版本。因此,绑定在每次版本更改时都会更改。请尝试在application.xml中设置
..
,并在各种模块部署描述符(ejb-jar.xml和web.xml)中设置
..
。确保这些DDs中包含Java EE 7版本。@Steve谢谢!我通过在
maven-ear-plugin
(生成
application.xml
)中定义
解决了这个问题。