对java:comp/env的研究

这两天研究了一下 context.lookup("java:comp/env/XXX")和直接context.lookup("XXX")的区别

网上关于这两个的文章也很多但是都说得很难理解比如什么ENC环境啊什么的各种概念。

其实说得简单点:context.lookup("java:comp/env/XXX")只能用在J2EE环境即是如果你自己写一个main函数想通过context.lookup("java:comp/env/XXX")这样的方式来访问JNDI服务这是不可能的。
因为:java:comp/env/是一个J2EE环境的定义说白了就是代表当前J2EE应用的环境比如你自己项目的Web环境或者是EJB环境那是不是只要是个Web项目就能用context.lookup("java:comp/env/XXX")这种方式访问JNDI服务了呢?也不是!!!
使用这样的方式必须做一次 当前应用环境 到 资源名 的映射。
在web.xml文件中有这样的标签:
<resource-env-ref></resource-env-ref>
<resource-ref></resource-ref>
<ejb-local-ref></ejb-local-ref> 
<ejb-ref></ejb-ref>
这些标签就是用来建立当前应用环境到服务器资源的映射的。
有了这样的映射之后就能采用context.lookup("java:comp/env/XXX")的方式来访问JNDI资源了。



注意:context.lookup("XXX")在任何时候都是有效的只要XXX确实是一个存在的JNDI名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值