EJB 2.1 项目中应用程序范围的资源引用
是否可以定义适用于应用程序中所有 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 查找来访问它。有什么办法可以做到这一点吗?
Is it possible to define resource references that are applicable to all EJBs in an application?
Currently I have an ejb-jar.xml that looks something like this:
<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>
You'll notice that both EJBs have the same resource-ref defined for both of them. Is there a way to factor this duplication out within a J2EE 1.4 application?
Ideally I should be able to define the jdbc/myDatasource resource once within the application and have anything running inside that container be able to access it by doing a JNDI lookup for "java:comp/env/jdbc/myDatasource". Is there any way to accomplish this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,在 J2EE 1.4 中不可能像这样考虑资源引用。 JavaEE 6 提供了
java:module/jdbc/myDatasource
(以及java:app
和java :global
) 在更高级别共享资源引用。No, it is not possible to factor resource-refs like this in J2EE 1.4. JavaEE 6 provides
<resource-ref-name>java:module/jdbc/myDatasource</resource-ref-name>
(andjava:app
andjava:global
) to share resource references at higher levels.