【问题标题】:Declare a resource-ref in EJB在 EJB 中声明资源引用
【发布时间】:2012-04-27 16:11:21
【问题描述】:

这就是他们在 ejb-jar.xml 中声明资源引用的方式:

<enterprise-beans>
<session>
<ejb-name>ResourceBean</ejb-name>
<resource-ref>
<res-ref-name>jdbc/employee</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
</resource-ref>
</session>
</enterprise-beans>

在此链接:http://javahowto.blogspot.ca/2006/06/5-ways-to-get-resources-in-ejb-3.html 现在,如果我有另一个会话 bean 需要使用相同的资源引用,我是否必须在第二个 EJB 中再次声明它?或者有什么解决方法?

【问题讨论】:

  • 请注意,您展示的 XML 语法如今更多地用于覆盖注入注释,而不是作为声明注入的主要来源。

标签: ejb jndi websphere-6.1 ejb-jar.xml


【解决方案1】:

在 EE 6 之前(在 WebSphere Application Server 8.0 中可用),无法跨 EJB 共享 resource-ref。您必须在每个 EJB 中重新声明 resource-ref

在EE 6中,你可以用java:module/env/jdbc/employee这样的名字来声明resource-ref,它将对模块中的所有EJB可见(并且java:app对所有模块可见,java:global是对所有应用可见)。

【讨论】:

  • 您说要使用诸如java:module/env/jdbc/employee 之类的名称声明资源引用。我假设您正在谈论在ejb-jar.xml 中声明它。正确的?如果是,那么使用哪个版本的 xsd?如果不是,那么要声明哪个文件?谢谢
  • @ChumboChappati 是的,在 ejb-jar.xml 或注解中;对于 java:app 或 java:global,您还可以使用 application.xml。如果是 ejb-jar.xml,那么您使用哪个版本的 XSD 并不重要,因为它只是一个字符串名称。对于 application.xml,您需要 applicaition_6.xsd。
猜你喜欢
  • 2010-12-10
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 2021-05-31
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多