2012-09-19 347 views
1

在安装Tomcat的过程中,多个论坛都需要设置CATALINA_HOME变量并指向Tomcat父目录。我通过eclipse运行web项目,它运行在场,并且没有设置这个环境变量。CATALINA_HOME路径设置

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

我也想知道驻留在Tomcat/bin目录中的确切使用Tomcat的juli.jar的

回答

0

Q>什么确切的目的,这是否变量解决
A中Bootstrap类>Javadoc说:

此应用程序构建一个类加载器用于加载 卡塔利娜内部类(通过累加所有JAR文件中“的catalina.home”下的“服务器”目录中找到 ),并启动 [R容器的单独执行。此迂回路径的目的是将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应用程序(以及它们的不同的 类加载器)的 。它支持私有的每个应用程序日志记录 配置。当Tomcat从内存中卸载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的巨力的适配器.jar作为Tomcat的“额外”组件提供。
  2. 把log4j.jar和tomcat-juli-adapters.jar从“extras”放到$ CATALINA_HOME/lib中。 用“extras”中的tomcat-juli.jar替换$ CATALINA_HOME/bin/tomcat-juli.jar。