2012-11-15 67 views
0

環境:
的Tomcat 7
JNDI
彈簧的MyBatis
沒有JTA - 公共池只
我可以在我的Spring-MyBatis應用程序中設置Tomcat的JNDI連接池設置嗎?

問題:無法得到連接池工作作爲標榜。我找不到一個不使用獨立事務管理器的例子,也沒有將所有設置放在戰爭中,這使得JNDI毫無意義。我被告知JTA對於這個應用程序是過度的,我們應該堅持共享池。這是有道理的,但我沒有看到配置池的方法,如果我們這樣做。

那麼......如何配置連接池而不將設置放入war文件中而不使用獨立的事務管理器?這可以在沒有完整的Java EE應用服務器的情況下完成嗎?我們只是從另一個實際上是完整Java EE的產品轉向Tomcat,所以我認爲這可能是一個Container vrs。應用服務器問題。

奇怪的是,我們可以並已經使用JNDI,但共享是絕對錯誤的。

下面是一個例子,可能工作,但爲什麼與JNDI打擾設置是否要在META-INF/context.xml的?:

MyBatis JNDI Example

+0

如果JTA是過度殺毒,那麼JNDI也是矯枉過正。 –

+0

......這並不意味着我的建築師不需要它。 ;-)他們正在從一個完整的JEE服務器轉移到Tomcat,他們只是不明白。 – user447607

回答

0

即使context.xml中,它仍然是一個容器級別設置。但是,在部署WAR文件之前,將所有內容部署在單元中是一種便捷的方式,而不必創建連接池。

JNDI旨在保持您的應用程序配置的一般性。例如,如果您將WAR部署到WebSphere中,它將忽略context.xml文件。但是WebSphere將會看到您的web.xml中有一個JDNI資源引用,並引導您創建數據源。與Tomcat一樣的想法,只是一種不同的做法。

如果您100%確定此應用程序只能在Tomcat上運行,那麼您不需要必須使用JNDI。但是,如果您移動到另一個容器,它將在以後節省您的麻煩。

+0

Tomcat是Tomcat的必備條件。 ;-) – user447607

+0

我已經知道了這一點。如果你遺漏了MyBatis配置文件,問題是MyBatis自己的池會導致奇怪的事情發生。在Spring配置中有一個是違反直覺的,但如果你想要容器管理池,則不需要那麼少。礦井幾乎是空的。 – user447607

相關問題