Search code examples
javajndiapache-tomeeopenejb

OpenEJB: can't specify global JNDI name


I have app running on Tomee 1.7.2. (let's call it myApp)

openejb-jar.xml :

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

MyApp containts MyEJB ejb.

When I start tomee here is the catalina.out log:

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)

As you can see there are 3 Jndi names for one MyEJB:

  • myApp/MyEJBLocalBean
  • global/MyEJB!dao.MyEJB
  • global/MyEJB

My question is:

Can I specify name of global/MyEJB!dao.MyEJB & global/MyEJB ??

For example: global/MyEJB -> global/myApp/MyEJB

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

Thanks


Solution

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

    This should solve the issue - {moduleId}.

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