如何在部署到tomcat之前(或期间)在.war文件中管理库版本



我有一个带有我的Web应用程序的单个.war文件。问题的根源是我想为所有客户(具有不同的环境)保留一个.war文件。为此,我应该将不同版本的库中保留在.war中,并在部署时决定使用哪些库。

例如:

第一个客户有Oracle 10,第二个客户有Oracle 11.我想在战争中保留两个OJDBC.JAR文件,然后根据属性文件中的某些参数选择其中的哪个。

解决此问题的一种解决方案是编写我自己的classloader,它不会加载无用的文件(如下所示:https://serverfault.com/questions/317901/tomcat-possible-to-exclude-jars-jars-jars-jars-jars-jars-during-应用程序)。

问题在于我们的类Loader类应该进入" tomcat lib"目录。我的应用程序的安装更为复杂。

也许还有其他方法可以解决这个问题?使用反射或其他内容在我的应用程序中以编程方式进行编程会非常好。

感谢您的帮助!

imho您给出的示例(数据库驱动程序)的最佳实践是通过tomcat提供数据源。这意味着数据库驱动程序jar需要在全球类路径(tomcat/lib)中。这也将使您打算为所有客户拥有相同的.war文件 - 当您更新此文件时,您只需要为所有用户提供相同的文件。

在数据库连接的情况下,无论如何,您很可能需要为每个客户进行自定义数据库 - 提供通过Tomcat的数据源,因此有必要(首次安装)将其配置为一次,但是您不会之后需要担心。

如果数据库驱动程序不是您唯一的问题,请使用更多不同环境的示例更新您的问题。

最新更新