为什么来自同一CATALINA_主页的多个tomcat实例需要单独的库?

为什么来自同一CATALINA_主页的多个tomcat实例需要单独的库?,tomcat,jar,jvm,Tomcat,Jar,Jvm,我正在阅读Tomcat:学习如何从同一安装部署多个Tomcat实例的权威指南。它们描述了您需要如何分离出特定于实例的文件夹,从而使核心CATALINA_主页保持干净;这种分离也为tomcat版本之间的干净升级提供了基础 他们建议将许多内容放到特定于实例的目录中是有意义的,比如conf和webapps,这些文件夹包含明显的特定于应用程序的数据。但是,还建议取出包含保存运行时类的jar的所有文件夹。直接引用他们的书: 此外,可能需要从共享、服务器和公共目录树加载一些jar文件和类文件。这意味着要让多

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

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

此外,可能需要从共享、服务器和公共目录树加载一些jar文件和类文件。这意味着要让多个实例工作,每个Tomcat实例必须有自己的一组目录;它们不能由两个不同配置的Tomcat JVM实例共享

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


注意:这是关于tomcat 5.5和6.0的。注意,我在回答我自己的问题。首先,需要注意的是,您需要具有lib目录的实例特定副本的原因与并发jvm访问单个jar文件集无关

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


从TOMCAT 6.0.24左右开始。从CATALINA_BASE和CATALINA_HOME中的共享、公共和服务器库文件夹加载类的能力提供了更精细的控制粒度,以便您的修改可以放在BASE中,它们将根据需要覆盖HOME。这意味着您只需要将特定的修改放在基础中;没有必要把整件事都抄一遍。事实上,在这些较新版本的tomcat中提供了相当多的配置,涉及到这些库及其对每个tomcat实例的类路径的分层影响

他们在谈论哪些操作系统?这可能很重要…@DonalFellows就我所知,这是平台不可知论的东西。我相信他们会像对待其他许多细节那样表示不同。