Как указать другое имя jndi, чем по умолчанию для EJB в JBoss 4.2.2.GA? - PullRequest
3 голосов
/ 17 июня 2009

По умолчанию кажется, что имя jndi бина основано на ухе, в котором он содержится. EJB с именем MyBean my-app.ear будет иметь имя «my-app / MyBean / local».

Как я могу изменить это поведение декларативно? Я хочу, чтобы имя jndi было «что-то еще / MyBean / local». Он должен быть декларативным, а не с аннотацией b / c. Я не могу изменить источник MyBean.java; У меня есть только банка, которую я упаковываю в ухо для развертывания.

Ответы [ 2 ]

3 голосов
/ 22 июня 2009

Вы можете предоставить это в 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>
0 голосов
/ 19 июня 2009

Я не в курсе дела с EJB3 (это слишком поздно, насколько я понимаю), но с EJB2 вы можете сделать это, изменив дескриптор jboss.xml, который находится внутри EJB JAR-файла META-INF. В частности, вы изменяете элемент определения EJB.

Если это не относится к EJB3 (и я понимаю, что EJB3 поддерживает дескриптор), приношу свои извинения, пожалуйста, не голосуйте против меня :)

...