我正在通過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