2012-09-19 319 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。