我正在通过EJB 3.1 spec,并试图掌握JNDI调用的不同可能方式。EJB容器内可能的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
引用?
我建议您阅读本文的所有5个部分(http://thegreyblog.blogspot.com/2010/09/introduction-to-ejb-30-injection-and.html)博客条目。 – Arek 2013-03-11 21:51:45
非常有帮助,谢谢! – Steven 2013-03-13 09:15:10