因此,我有一种情况,我将部署多个耳朵文件,每个耳朵文件都需要使用不同的数据库(可能)进行配置。如何在JBoss中拥有多个具有相同JNDI名称的数据源?
现在我有一个在JBoss中部署的* -ds.xml文件,它带有一个JNDI名称,表示我的所有portlet和servlet用来查找数据库连接。如果我使用* -ds.xml文件部署多个ear文件,该文件指向不同的数据库,但使用相同的JNDI名称部署barfs。在部署不同的应用程序以隔离它们时,JNDI不应该更模块化以防止命名冲突。
需要一段时间才能在代码中更改我的查找,那么有没有一种方法可以部署?我唯一的想法是将JNDI属性设置为要查找的数据源名称的值,然后首先查找该JNDI属性并根据检索到的“密钥”检索数据源。这对我来说似乎有点...
你的arent在这种情况下missusing JNDI? JNDI只是简单地将数据源映射到应用程序服务器级别的标识符。这样你的部署就与它工作的数据源分开了。不同的数据源应该获得不同的JNDI标识符,尽管它们实际上是猜测它是不同的数据源。把它看作一个简单的'Map'。 JNDI在服务器范围内定义,不在部署范围内。 –
Paranaix
2012-08-07 21:27:32
Re:“JNDI有什么意义”,在一个盛大的假设下使用某些东西的重点是什么?你没有验证过,然后指责这个工具?在这种情况下,您只是假设每个.ear都有自己的名称空间。你有这个假设的基础吗? – EJP 2012-08-07 21:39:32
这似乎是一个合理的想法,每个耳朵部署在Web服务器上将有自己的名称空间; IE:您可以部署多个不同的ear文件,每个文件引用相同的JNDI名称,每个文件都有不同的数据库值。例如,我正在与其他开发人员一起工作,如果我需要对数据库进行彻底更改,那么我不希望为每个人都更改数据库查找名称,因为我可以保留相同的数据库名称。 – Shinzul 2012-08-07 21:54:17