默认情况下,bean的jndi名称似乎基于包含它的耳朵。名为MyBean my-app.ear的EJB将具有名称“my-app / MyBean / local”。
如何以声明方式更改该行为?我希望jndi名称是“something-else / MyBean / local”。它必须是声明性的而不是注释b / c我不能修改MyBean.java的源;我只有罐子,我将其包装成耳朵进行部署。
答案 0 :(得分:3)
您可以在jboss.xml
中提供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),请向我道歉,请不要向我投票:)