java - EJB 2.1 项目中应用程序范围的资源引用

标签 java jakarta-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 都为它们定义了相同的资源引用。有没有办法在 J2EE 1.4 应用程序中消除这种重复?

理想情况下,我应该能够在应用程序中定义一次 jdbc/myDatasource 资源,并且让该容器内运行的任何内容都能够通过对“java:comp/env/jdbc/myDatasource”进行 JNDI 查找来访问它。有什么办法可以实现这一点吗?

最佳答案

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

关于java - EJB 2.1 项目中应用程序范围的资源引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875914/

相关文章:

java - 在静态内部类中使用静态变量

java - 什么是NullPointerException,我该如何解决?

java - 在 Windows 7 上使用安装程序安装 Glassfish Server 失败

jakarta-ee - 无法远程调用方法

java - 你能帮我理解java :comp/env (The Enterprise Naming Context aka ENC)?的目的吗

java - jetty 6 : Cannot create context (NoInitialContextException)

java - 如何将 HashMap<Integer,ArrayList<String>> 存储到 SQLite?

java - Kafka 使用高级消费者 API 抵消提交请求

java - HttpSession 跟踪和监控工具

java - 我应该采用哪种类型的列表来从另​​一个表中加入(内部)2 个表