gpt4 book ai didi

tomcat - 为什么同一个 CATALINA_HOME 的多个 tomcat 实例需要单独的库?

转载 作者:行者123 更新时间:2023-11-28 23:51:46 25 4
gpt4 key购买 nike

我正在阅读《Tomcat:权威指南》以了解如何从同一安装中部署多个 tomcat 实例。他们描述了您需要如何分离出特定于实例的文件夹,从而使核心 CATALINA_HOME 内容保持干净;这种分离也为 tomcat 版本之间的干净升级提供了基础。

他们建议将许多内容拉出到特定于实例的目录中,例如 conf 和 webapps——这些文件夹包含明显的应用程序特定数据。但是,还建议取出所有包含保存运行时类的 jar 的文件夹。直接引用他们的书:

Also, some jar files and class files may need to be loaded from the shared, server, and common directory trees. This means that for multiple instances to work, each Tomcat instance has to have its own set of these directories; they cannot be shared by two differently configured Tomcat JVM instances.

为什么单独的实例需要它们自己的 jar 文件?不可能将两个同时执行的 jvm 指向同一组 jar 文件吗?

注意:这是关于tomcat 5.5和6.0的

最佳答案

注意,我是在回答我自己的问题。首先,重要的是要注意,您需要拥有 lib 目录的实例特定副本的原因与并发 jvm 访问一组 jar 文件无关。

您必须将这些库文件复制到您的实例特定目录结构(也称为 CATALINA_BASE's)中的原因是在 tomcat 5.5 和早期 6.0 版本中,tomcat 只能使用单个文件夹作为在中找到的库的类路径源共享,服务器和通用。这意味着,如果给定的 tomcat 实例需要添加或修改这些文件夹中的库,您要么必须制作共享、通用和服务器的全新实例特定版本,要么库的修改(如果在 CATALINA_HOME 中完成)影响从该 CATALINA_HOME 运行的所有实例。

从 TOMCAT 6.0.24(左右)开始,能够从 CATALINA_BASE 和 CATALINA_HOME 中的共享、公共(public)和服务器库文件夹加载类,提供更精细的控制粒度,以便您的修改可以放在BASE,他们将在必要时覆盖 HOME。这意味着您只需要将特定的修改放在您的 BASE 中;没有必要复制整个东西。事实上,这些较新版本的 tomcat 中提供了很多关于这些库的配置以及它们对每个 tomcat 实例的类路径的分层影响。

关于tomcat - 为什么同一个 CATALINA_HOME 的多个 tomcat 实例需要单独的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com