在安装Tomcat的过程中,多个论坛都需要设置CATALINA_HOME变量,并且要指向Tomcat的父目录。我正在通过 Eclipse 运行 Web 项目,它在存在和没有设置此环境变量的情况下运行。
我想知道这个变量解决了什么确切的目的,什么时候设置它成为强制性的。
我还想知道 Tomcat/bin 目录中的 tomcat-juli.jar 的确切用途
Q> 这个变量解决的具体目的是什么
A>类的JavadocBootstrap
说:
该应用程序构造了一个类加载器,用于加载 Catalina 内部类(通过累积在“catalina.home”下的“server”目录中找到的所有 JAR 文件),并开始容器的常规执行。这种迂回方法的目的是使 Catalina 内部类(以及它们所依赖的任何其他类,例如 XML 解析器)远离系统类路径,因此对应用程序级类不可见。
但还有更多。CATALINA_HOME
并且(可互换地)CATALINA_BASE
定义一个“基本目录”,用于引用work
目录(用于保存已编译的jsps),也有助于查找上下文配置文件等。
可能是 Eclipse 在您不知情的情况下设置了这些属性。打印所有系统属性以查看其中的内容。
Q> 什么时候设置成为强制性
的 A> 据我所知
Q> tomcat-juli.jar 的确切使用
A> 直接来自Tomcat 文档:
Apache Tomcat 有自己的 java.util.logging API 的几个关键元素的实现。这个实现被称为“JULI”。关键组件是自定义 LogManager 实现,它知道在 Tomcat 上运行的不同 Web 应用程序(以及它们不同的类加载器)。它支持私有的每个应用程序日志记录配置。当 Web 应用程序从内存中卸载时,Tomcat 也会通知它,以便清除对其类的引用,防止内存泄漏。
安装 Tomcat 后,检查 java 选项下的 tomcat 属性,默认情况下已设置以下变量。
-Dcatalina.home=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0
-Dcatalina.base=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0
-Djava.endorsed.dirs=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\endorsed
-Djava.io.tmpdir=C:\Program Files (x86)\Apache Software Foundation\Tomcat 6.0\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files (x86)\Apache SoftwareFoundation\Tomcat
6.0\conf\logging.properties
您不需要自己设置 CATALINA_HOME ,即使在 Eclipse 中运行也是如此。您必须设置CATALINA_HOME和/或CATALINA_BASE的唯一时间是您想要覆盖默认值。最常见的是,如果您使用相同的 Tomcat 二进制文件来运行多个 Tomcat 实例,您会这样做。
tomcat-juli.jar
此 tomcat-juli.jar 是用于记录目的的第三方组件。它包含完整的 Apache Commons Logging 实现,因此能够发现 log4j 的存在并进行自我配置。
如何使用 tomcat-juli.jar
如果要将 Tomcat 配置为全局使用 log4j: