2010-12-03 61 views
1

我有一個Java應用程序需要最新的commons-dbcp版本(1.3),它的db連接池由Spring配置。這個應用程序只是同一個tomcat中的一個應用程序列表(一個套件,如果你喜歡的話),其中許多應用程序使用的是舊版本的commons-dbcp(1.2.1),全部由Spring配置。配置Spring以使用特定版本的類

因此,雖然我可以使用DBCP 1.3編譯我的應用程序,但是我無法運行它,因爲Spring正嘗試使用Tomcat中的/ shared/lib中的舊版本配置我的db連接池。

我遇到的問題是,我沒有時間,也沒有批准將所有內容升級到1.3,只是我正在修復的一個應用程序。是否有可能在我的應用程序的components.xml文件中(或通過其他方式)強制Spring到新的DBCP版本,以便只有它會運行新版本並且不會影響任何其他應用程序?

回答

3

只要你在/ shared/lib中有1.2.1版本,就沒有簡單的方法來實現你所需要的,據我所知。

在這種情況下,您通常會做的事情是將1.2.1版本與需要該版本的應用程序捆綁在一起(例如,在WEB-INF/lib中,如果它們是Web應用程序)並將1.3版本與您的應用程序捆綁在一起。

+2

我第二。永遠不要在tomcat中的共享類加載器中放置任何東西 - 這總是以眼淚結束。 – 2010-12-03 07:47:37

0

您可以使用Jar Jar將dbcp 1.3版本類移動到不同的包下,並要求Spring使用它們。

是的,這是一個黑客。

相關問題