首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态传递JNDI名称

动态传递JNDI名称
EN

Stack Overflow用户
提问于 2015-06-24 11:45:29
回答 2查看 1.1K关注 0票数 1

我有很多Websphere服务器,我的DB连接有不同的JNDI名称,所以我必须为每个服务器构建多个ears文件。我想做这样的事情:

代码语言:javascript
复制
<bean id="dbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="${SPECIFIC_JNDI_NAME}"/>
</bean>

如何创建这个SPECIFIC_JNDI_NAME变量?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-24 13:37:29

正确的Java方法是在代码中使用资源引用(如:java:comp/env/jdbc/myDSRef ),然后在安装过程中将该资源引用绑定到实际的JNDI名称。

您可以通过@Resource标记定义引用,或者在部署描述符(web.xmlejb-jar.xml)中定义条目。

您可以通过管理控制台、wsadmin安装脚本或放在WEB文件夹中的ibm-web-bnd.xml文件将其映射到JNDI名称。

可以在Spring中使用引用。

票数 2
EN

Stack Overflow用户

发布于 2015-06-24 12:08:23

这样做是错误的。JNDI的一个优点是,您可以在一个JNDI名称下绑定对象(在本例中是数据源),而无需考虑对象的来源、实例化的方式等等,只要它在第一次访问时就在那里。

您(或配置JNDI名称的人)基本上是试图通过在不同的JNDI名称上绑定不同的数据源来获取这一优势。

解决方法可能是将“自定义”名称绑定到“标准”JNDI名称,这样您的应用程序仍然可以引用“标准”名称,而提供正确bean的责任在于那些配置JNDI的人,但实际上,如果您走了那么远,您也可以为数据源指定标准名称。而且,我也不确定这在JNDI中是否可行,我只知道在Spring自己的配置中这是可能的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31025654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档