java comp evn_java:comp / env /做什么?

java:comp / env /做什么?

我只是花了太多的时间试图在连接一些JNDI工厂bean的时候弄清楚一些错误。 问题原来是,而不是这个…

我其实写了这个…

我推断java:comp / env /可能会引用一些环境variables,并使得它最终会查看我的上下文文件。 唯一的区别是java:comp / env /。 从专家的口中,这是做什么的?

如果在值中没有java:comp / env前缀,我会得到一个错误,指出“名称jdbc未在此上下文中绑定”。

在名称空间的根上下文中是名为“comp”的绑定,绑定到为组件相关绑定保留的子树。 名称“comp”是组件的简称。 根上下文中没有其他绑定。 然而,根上下文被保留用于未来的策略扩展,特别是命名与组件本身不相关的资源,而是与用户或部门等其他types的实体相关联。 例如,将来的策略可能允许您使用“java:user / alice”和“java:org / engineering”等名称来命名用户和组织/部门。

在“comp”上下文中,有两个绑定:“env”和“UserTransaction”。 名称“env”被绑定到为组件的环境相关绑定保留的子树,如其部署描述符所定义的。 “env”是环境的简称。 J2EEbuild议(但不要求)“env”命名空间的以下结构。

因此,你从spring或者tomcat上下文描述符所做的绑定在java:comp / env /

例如,如果您的configuration是:

那么你可以直接使用它来访问它:

Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/foo");

或者你可以做一个中间步骤,所以你不必为你检索的每个资源指定“java:comp / env”:

Context ctx = new InitialContext(); Context envCtx = (Context)ctx.lookup("java:comp/env"); DataSource ds = (DataSource)envCtx.lookup("foo");

还有一个JndiObjectFactoryBean的属性resourceRef ,当设置为true ,如果它不存在的话,它会自动预先加载stringjava:comp/env/ 。

经过多次尝试,并深入Tomcat的源代码,我发现简单的属性useNaming =“false”做了诡计! 现在,Tomcatparsing了名称java:/ liferay而不是java:comp / env / liferay

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值