0

我有以下情况:

一方面,我有一个 tomcat 实例,其中有很多需要包含 slf4j 库的 activemq-all.jar 的应用程序,所以我已经将它部署到 lib 目录中,包含这个对我来说不是可选的每个应用程序上的 jar 文件。

另一方面,我需要安装一个我无法控制的监视器应用程序,并附带不同版本的 slf4j。

在另一个 tomcat 实例上运行最后一个应用程序也不是一种选择。

我想配置 tomcat 的 ClassLoader 以尝试先加载 webapps 上的 jars,然后再加载 lib/ 目录上的 jars。

这可能吗?怎样才能实现?

4

2 回答 2

1

默认情况下,tomcat 首先加载 web 应用程序类,并为它们提供比其自己的 lib 目录中的类更高的优先级。您可以将提到的 jar 保留为 lb 文件夹。通常我会推荐 catalina_base 目录

于 2012-08-17T04:41:00.123 回答
0

在Common 类加载器下加载公共 jar 。默认情况下,通用类加载器会在以下位置查找 jar:

  • $CATALINA_BASE/lib
  • $CATALINA_HOME/lib

与您的 Web 应用程序一起打包的任何 jar 都应该优先于 Common 类加载器中的那些。

于 2012-08-17T03:08:31.470 回答