java - OpenEJB:无法指定全局 JNDI 名称

标签 java jndi apache-tomee openejb

我的应用程序在 Tomee 1.7.2 上运行。 (我们称它为 myApp)

openejb-jar.xml:

<openejb-jar>
  <properties>
     openejb.deploymentId.format = myApp/{ejbName}
     openejb.jndiname.format = {deploymentId}{interfaceType.annotationName}
  </properties>
</openejb-jar>

MyApp 包含 MyEJB ejb。

当我启动 tomee 时,这里是 catalina.out 日志:

INFO: ------------------------- myApp -> /
INFO: Auto-deploying ejb MyEJB: EjbDeployment(deployment-id=myApp/MyEJB)
INFO: Jndi(name=myApp/MyEJBLocalBean) --> Ejb(deployment-id=myApp/MyEJB)
INFO: Jndi(name=global/MyEJB!dao.MyEJB) --> Ejb(deployment-id=myApp/MyEJB)
INFO: Jndi(name=global/MyEJB) --> Ejb(deployment-id=myApp/MyEJB)
INFO: Created Ejb(deployment-id=app1/MyEJB, ejb-name=MyEJB, container=Default Stateless Container)

如您所见,一个 MyEJB 有 3 个 Jndi 名称:

  • 我的应用程序/我的EJBLocalBean
  • global/MyEJB!dao.MyEJB
  • 全局/MyEJB

我的问题是:

我可以指定 global/MyEJB!dao.MyEJB & global/MyEJB 的名称吗??

例如: global/MyEJB -> global/myApp/MyEJB

假设您有 2 个应用程序,每个应用程序都具有 MyEJB ejb,都具有全局/MyEJB JNDI 名称:(

谢谢

最佳答案

Imagine case that you have 2 apps having each MyEJB ejb, both havign global/MyEJB JNDI name :(

这应该可以解决问题 - {moduleId}

openejb.deploymentId.format = {moduleId}/{ejbName}

关于java - OpenEJB:无法指定全局 JNDI 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944203/

相关文章:

java - 如何指定从中获取 EJB 的服务器?

linux - TomEE 说开始了,但事实并非如此

gradle - 如何在Tomee Web服务器上运行gradle Web项目?

Java垃圾收集器

java - 使用 Java 的 WordPress XML-RPC

java - 如何在特定的 Web 应用程序部署事件上加载 tomcat jndi 资源/上下文

java - 在 TomEE 中设置 ActiveMQ

java:在 BigInteger 的情况下 for 循环如何工作

java - IBM Message Broker Java API : java. lang.NoClassDefFoundError : com. ibm.mq.MQException

grails - Grails + MySQL-BasicDataSource或JNDI