CATALINA_HOME路径设置

问题描述 投票:1回答:2

在安装Tomcat期间,多个论坛需要设置CATALINA_HOME变量并指向Tomcat父目录。我正在通过eclipse运行web项目,它在现场运行,也没有设置此环境变量。

我想知道这个变量的确切目的是什么,以及什么时候设置它是强制性的。

另外,我想知道tomcat-juli.jar的确切用法,它位于Tomcat / bin目录中

java tomcat web catalina
2个回答
0
投票

问:这个变量解决的确切目的是什么 a> Javadoc类的Bootstrap说:

此应用程序构造一个类加载器,用于加载Catalina内部类(通过累积“catalina.home”下“server”目录中的所有JAR文件),并开始定期执行容器。这种迂回方法的目的是将Catalina内部类(以及它们依赖的任何其他类,例如XML解析器)保留在系统类路径之外,因此对应用程序级类不可见。

但还有更多。 CATALINA_HOME和(可互换地)CATALINA_BASE定义了一个“基本目录”,用于引用work目录(用于保存已编译的jsps),还有助于查找上下文配置文件等。

可能是Eclipse在您不知情的情况下设置了这些属性。打印所有system properties以查看其中的内容。

Q>什么时候设置成为强制性的 A>从我记忆中来的

Q> tomcat-juli.jar的确切用法 A>直接来自Tomcat documentation

Apache Tomcat有自己的java.util.logging API几个关键元素的实现。这种实现称为“JULI”。关键组件是一个自定义LogManager实现,它知道在Tomcat上运行的不同Web应用程序(及其不同的类加载器)。它支持私有的每应用程序日志记录配置。当从内存中卸载Web应用程序时,Tomcat也会通知它,以便可以清除对其类的引用,从而防止内存泄漏。


0
投票

一旦安装了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 

即使在Eclipse中运行,也不需要自己设置CATALINA_HOME。您必须设置CATALINA_HOME和/或CATALINA_BASE的唯一情况是您要覆盖默认值。最常见的是,如果您使用相同的Tomcat二进制文件来运行多个Tomcat实例,则可以这样做。

Tomcat的juli.jar

这个tomcat-juli.jar是用于记录目的的第三方组件。它包含完整的Apache Commons Logging实现,因此能够发现log4j的存在并自行配置。

你如何使用tomcat-juli.jar

如果要将Tomcat配置为全局使用log4j:

  1. 下载或构建tomcat-juli.jar和tomcat-juli-adapters.jar,它们可用作Tomcat的“extras”组件。
  2. 将log4j.jar和tomcat-juli-adapters.jar从“extras”放入$ CATALINA_HOME / lib。将$ CATALINA_HOME / bin / tomcat-juli.jar替换为来自“extras”的tomcat-juli.jar。
© www.soinside.com 2019 - 2024. All rights reserved.