我有一个需要最新commons-dbcp版本(1.3)的java应用程序,它的数据库连接池由Spring配置。这个应用程序只是同一个tomcat(如果你喜欢的套件)中的应用程序列表之一,并且其中许多使用旧版本的commons-dbcp(1.2.1),所有这些都是由Spring配置的。
因此,虽然我可以使用DBCP 1.3编译(使用Maven)我的应用程序,但我无法运行它,因为Spring正在尝试使用旧版本配置我的数据库连接池,旧版本位于Tomcat中的/ shared / lib中。
我遇到的问题是我没有时间,也没有批准,将所有内容升级到1.3,只是我正在修复的一个应用程序。是否可以在我的应用程序的components.xml文件中(或通过其他方式)强制Spring到新的DBCP版本,以便它只运行新版本而不影响任何其他应用程序?
答案 0 :(得分:3)
只要你在/ shared / lib中有1.2.1版本,就我所知,没有简单的方法来实现你所需要的。
在这种情况下,您通常要做的是将1.2.1版本与需要该版本的应用程序捆绑在一起(例如,如果它们是Web应用程序,则在WEB-INF / lib中捆绑)并将1.3版本与您的应用程序捆绑在一起。
答案 1 :(得分:0)
您可以使用Jar Jar在不同的包下移动dbcp 1.3版本类,并要求Spring使用它们。
是的,这是一个黑客攻击。