3

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

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

4

2 回答 2

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>
于 2009-06-22T12:40:52.777 回答
0

我对 EJB3 不是很熟悉(就我而言,这太迟了),但是使用 EJB2,您可以通过修改 EJB JAR 的 META-INF 中的 jboss.xml 描述符来做到这一点。具体来说,您修改 EJB 定义的元素。

如果这不适用于 EJB3(并且我意识到 EJB3 是描述符精简版),我很抱歉,请不要对我投反对票 :)

于 2009-06-19T14:01:05.113 回答