【发布时间】:2013-02-21 12:31:18
【问题描述】:
我正在查看EJB 3.1 spec,并试图掌握可以进行 JNDI 调用的不同可能方式。
您可以使用SessionContext 和InitialContext(或基于 Initial- 或 SessionContext 的自创上下文)来实现。 根据您使用的语法不同,但我似乎无法找到其背后的逻辑。
所以我的问题是:什么时候可以使用什么语法在 EJB 容器环境中使用 JNDI 调用?
这个问题的其余部分只是为了说明我的观点。
例如,我相信对于正确注入的sessioncontext 或创建的initialcontext,这总是可能的:
ctx.lookup(java:global[/<app-name>]/<module-name>/<bean-name>[!<fully-qualified-interface-name>])
ctx.lookup(java:comp/env ...)
// special ones like these
ctx.lookup("java:comp/UserTransaction");
ctx.lookup("java:comp/ORB");
有时(仅用于会话上下文?)这个较短的版本是可能的:
ctx.lookup(<bean-name>);
在embedded environment 中,只能使用global 引用吗?
【问题讨论】:
-
我建议您阅读这篇 (thegreyblog.blogspot.com/2010/09/…) 博客文章的全部 5 个部分。
-
非常有帮助,谢谢!
标签: java jakarta-ee ejb-3.0 jndi ejb-3.1