如何在JBoss 4.2.2.GA中为EJB指定一个不同于jdei-name的jndi-name?

时间:2009-06-17 16:31:54

标签: jboss ejb-3.0 jndi

默认情况下,bean的jndi名称似乎基于包含它的耳朵。名为MyBean my-app.ear的EJB将具有名称“my-app / MyBean / local”。

如何以声明方式更改该行为?我希望jndi名称是“something-else / MyBean / local”。它必须是声明性的而不是注释b / c我不能修改MyBean.java的源;我只有罐子,我将其包装成耳朵进行部署。

2 个答案:

答案 0 :(得分:3)

您可以在jboss.xml

中提供

http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html/jboss_deployment_descriptor.html

jndi-name元素就是你想要的。

示例:

<jboss>
   <enterprise-beans>
      <service>
         <ejb-class>org.jboss.ejb3.test.service.ServiceSix</ejb-class>
         <local>org.jboss.ejb3.test.service.ServiceSixLocal</local>
         <remote>org.jboss.ejb3.test.service.ServiceSixRemote</remote>
         <management>org.jboss.ejb3.test.service.ServiceSixManagement</management>
         <jndi-name>serviceSix/remote</jndi-name>
         <local-jndi-name>serviceSix/local</local-jndi-name>
      </service>
   </enterprise-beans>
</jboss>

答案 1 :(得分:0)

我对EJB3不太满意(就我而言,它太晚了),但是对于EJB2,您可以通过修改EJB JAR的META-INF内部的jboss.xml描述符来实现这一点。具体来说,您可以修改EJB定义的元素。

如果这不适用于EJB3(并且我意识到EJB3是descriptor-lite),请向我道歉,请不要向我投票:)