EJB 2.1项目中应用程序范围的resource-ref

时间:2010-05-20 16:41:43

标签: java java-ee jndi ejb-jar.xml resource-ref

是否可以定义适用于应用程序中所有EJB的资源引用?

目前我的ejb-jar.xml看起来像这样:

<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>

您会注意到两个EJB都为这两个EJB定义了相同的resource-ref。有没有办法在J2EE 1.4应用程序中考虑这种重复?

理想情况下,我应该能够在应用程序中定义一次jdbc / myDatasource资源,并且通过对“java:comp / env / jdbc / myDatasource”执行JNDI查找,使该容器内运行的任何内容都能够访问它。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

不,在J2EE 1.4中不可能将这样的资源引用考虑在内。 JavaEE 6提供<resource-ref-name>java:module/jdbc/myDatasource</resource-ref-name>(以及java:appjava:global)来共享更高级别的资源引用。