Come specificare un nome jndi diverso da quello predefinito per un bean in JBoss 4.2.2.GA?
Domanda
Per impostazione predefinita sembra che il nome jndi di un bean sia basato sull'orecchio in cui è contenuto. Un bean chiamato MyBean my-app.ear avrà il nome " my-app / MyBean / local " ;.
Come posso cambiare quel comportamento in modo dichiarativo? Voglio che il nome jndi sia " qualcos'altro / MyBean / local " ;. Deve essere dichiarativo piuttosto che con un'annotazione b / c Non riesco a modificare l'origine di MyBean.java; Ho solo il barattolo, che sto confezionando in un orecchio per la distribuzione.
Soluzione
Puoi fornirlo in jboss.xml
l'elemento jndi-name è quello che vuoi.
Esempio:
<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>
Altri suggerimenti
Non sono all'altezza di EJB3 (è troppo tardi per quanto mi riguarda), ma con EJB2 puoi farlo modificando il descrittore jboss.xml che si trova all'interno del META-INF del JAR EJB. In particolare, si modifica l'elemento della definizione EJB.
Se questo non si applica a EJB3 (e mi rendo conto che EJB3 è descrittivo-lite), le mie scuse, per favore, non votarmi verso il basso :)