Jakarta ee 如何在WebSphereLiberty中更改EJB JNDI绑定
我有一个部署到WebSphereLiberty 8.5的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
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
)中定义
和
解决了这个问题。