1

注意:一般来说,我对 JVM 部署还很陌生,所以请随时告诉我这是一个完全错误的方法 :)

我有一堆自包含的 .war 文件,它们的所有依赖项都包含为 .jar 文件。不过,我的一些项目具有共享依赖项。是否可以设置 tomcat 以自动检测相同的 .jar 文件并跨主机重用它们?还是我必须手动从 .war 中排除这些 .jar 依赖项,并将它们放在 CATALINA_HOME/lib 中?

我想一个检查 .jar 文件信息和校验和的系统将是一个足够好的测试。

注意:我需要这个的实际原因是由于 JNI。共享其他共享依赖项当然会很好,以降低内存使用率等,但对于使用相同 JNI 模块的 .wars 来说,这是绝对要求,因为当 Tomcat 尝试加载 .jar 时我会遇到类加载器异常第二次加载 JNI 模块的文件。这显然不受 Tomcat 支持。

4

1 回答 1

1

您需要手动完成并将它们填充到类路径上的共享空间中。

可以是 CATALINA_HOME/lib,也可以自己手动将它们添加到 Tomcat 的起始类路径中。

但无论哪种方式,您都需要手动管理它,或者您可以使用某种脚本自动执行它,但是(任何类型的)jar 更改需要重新启动 Tomcat。

于 2013-02-26T22:06:07.350 回答