java - 动态传递 JNDI 名称

标签 java jdbc websphere jndi spring-jdbc

我有很多 Websphere 服务器,它们的数据库连接具有不同的 JNDI 名称,因此我必须为每个服务器构建许多 Ear 文件。我想做这样的事情:

<bean id="dbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="${SPECIFIC_JNDI_NAME}"/>
</bean>

如何创建此 SPECIFIC_JNDI_NAME 变量?

最佳答案

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

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

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

可以使用 Spring 的引用。

关于java - 动态传递 JNDI 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31025654/

相关文章:

Eclipse 没有导入所有 Axis2 jar,但项目仍在 Tomcat 上运行?

java - 从驱动程序实现访问设备凭据的最简单方法?

java - 从此生产规则构建 POJO 对象

java - 调用 setGridLinesVisible(true) 时,GridPane 布局调试行未按预期显示

jdbc - Redshift JDBC 与 ODBC 驱动程序性能比较

java - 在 Java 中将字节数组转换为 Blob 的最简单方法

java - 由于内存不足错误,无法在 vagrant ubuntu 盒子中启动 Zookeeper 服务器

java - 如何通过JDBC返回MySQL插入行的自增BIGINT键?

webserver - 登录时的 WebSphere 重定向会删除域名/主机名。 WASReqURL 缺少域名/主机名

java - 总事务生命周期超时和最大事务超时之间的区别?