java - 我如何在 JBoss 中拥有多个具有相同 JNDI 名称的数据源?

标签 java database jboss jndi

因此,我遇到的情况是我将部署多个 ear 文件,我需要为每个文件配置不同的数据库(可能)。

现在我有一个部署在 JBoss 中的 *-ds.xml 文件,它有一个 JNDI 名称,我的所有 portlet 和 servlet 都使用它来查找数据库连接。如果我部署多个带有指向不同数据库但具有相同 JNDI 名称的 *-ds.xml 文件的 ear 文件,则部署 barfs。 JNDI 不应该更加模块化以防止在部署不同的应用程序时发生命名冲突以隔离它们。

更改我在代码中的查找需要相当长的时间,那么有没有一种可行的部署方法?我唯一的其他想法是将 JNDI 属性设置为要查找的数据源名称的值,然后首先查找该 JNDI 属性并根据检索到的“键”检索数据源。这对我来说似乎有点骇人听闻......

最佳答案

您可以在应用程序服务器上使用不同的名称(在服务器 namespace 上)定义不同的数据源,然后将其映射到资源引用名称(这次是组件 namespace ,因此每个应用程序都可以有自己的名称)通过部署 xml 文件。

对于 as7 之前的 JBoss:https://community.jboss.org/wiki/HowDoICreateAResourceRef对于 as7:https://community.jboss.org/message/629666

关于java - 我如何在 JBoss 中拥有多个具有相同 JNDI 名称的数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11854326/

相关文章:

java - 从jar中读取资源文件

java - 启动 TOMCAT 时出错

java - Maven 构建失败 - 缺少主类

sql-server - SQL 服务器 : Key Lookup without Clustered Index

java - Intellij JBoss - 初始堆大小设置为大于最大堆大小的值

java - WEB-INF/lib 内容的 JBOSS 排序

ant - 如何自动化构建、部署和测试 Java Web 应用程序?

java - 连续遍历 HashMap 需要什么代码?

database - 在 Matlab 中拟合偏斜的 t 分布或正态分布

SQL 表日期时间列格式