因此,我有一種情況,我將部署多個耳朵文件,每個耳朵文件都需要使用不同的數據庫(可能)進行配置。如何在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