2009-06-17 5 views
3

Par défaut, il semble que le nom jndi d'un bean soit basé sur l'oreille dans laquelle il est contenu. Un EJB nommé MyBean my-app.ear portera le nom "my-app/MyBean/local".Comment spécifier un nom jndi différent de celui par défaut pour un EJB dans JBoss 4.2.2.GA?

Comment puis-je modifier ce comportement de manière déclarative? Je veux que le nom jndi soit "something-else/MyBean/local". Il doit être déclaratif plutôt qu'avec une annotation b/c je ne peux pas modifier la source de MyBean.java; Je n'ai que le pot, que je suis en train d'emballer dans une oreille pour le déploiement.

Répondre

3

Vous pouvez fournir ce dans jboss.xml

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

élément jndi-name est ce que vous voulez.

Exemple:

<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

Je ne suis pas au courant avec EJB3 (c'est trop peu trop tard en ce qui me concerne), mais avec EJB2 vous pouvez le faire en modifiant le descripteur jboss.xml qui va dans le META-INF de l'EJB JAR . Plus précisément, vous modifiez l'élément de la définition EJB.

Si cela ne concerne pas EJB3 (et je me rends compte que EJB3 est descripteur-lite), mes excuses, s'il vous plaît ne pas me down-vote :)

Questions connexes