2010-05-20 7 views
1

Est-il possible de définir des références de ressources applicables à tous les EJB d'une application?resource-ref à la portée de l'application dans EJB 2.1 Projet

Actuellement, j'ai un ejb-jar.xml qui ressemble à ceci:

<ejb-jar> 
    <enterprise-beans> 
    <session id="foo"> 
     <!-- snip --> 
     <resource-ref> 
     <res-ref-name>jdbc/myDatasource</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
     </resource-ref> 
    </session> 
    <session id="bar"> 
     <!-- snip --> 
     <resource-ref> 
     <res-ref-name>jdbc/myDatasource</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
     </resource-ref> 
    </session> 
    </enterprise-beans> 
</ejb-jar> 

Vous remarquerez que les deux ont la même EJBs ressource-ref définie pour les deux. Existe-t-il un moyen de prendre en compte cette duplication dans une application J2EE 1.4?

Idéalement, je devrais pouvoir définir la ressource jdbc/myDatasource une fois dans l'application et faire en sorte que tout ce qui fonctionne dans ce conteneur puisse y accéder en effectuant une recherche JNDI pour "java: comp/env/jdbc/myDatasource". Y a-t-il un moyen d'accomplir cela?

Répondre

2

Non, il n'est pas possible de factoriser les références de ressources comme cela dans J2EE 1.4. JavaEE 6 fournit <resource-ref-name>java:module/jdbc/myDatasource</resource-ref-name> (et java:app et java:global) pour partager des références de ressources à des niveaux supérieurs.

+0

C'est ce que je soupçonnais. Merci de confirmer. –