我正在浏览EJB 3.1 规范,并试图掌握进行 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>);
那么 in embedded environment
, 只能global
使用引用吗?