簡體   English   中英

Tomcat 8無法啟動

[英]Tomcat 8 won't start

我已經搜索了很多,但是找不到答案。 我剛剛升級了STS(從3.2版開始),因此可以嘗試Tomcat 8(從7.0.53版開始)。 我有STS 3.6.2和Tomcat 8.0.15。 添加TC8服務器並對其進行配置后,它拒絕啟動,並出現以下根本錯誤:

java.lang.ClassNotFoundException: org.apache.juli.WebappProperties

因此,我讀了很多書,發現了本指南,它涉及從通過Juli進行硬編碼的公共記錄到Log4J的切換,然后又順其自然地完成了工作。 相關摘錄:

Apache Tomcat的內部日志記錄使用JULI,這是Apache Commons Logging的打包的重命名的fork,默認情況下,它經過硬編碼以使用java.util.logging框架。 這樣可以確保Tomcat的內部日志記錄和任何Web應用程序日志都將保持獨立,即使Web應用程序使用Apache Commons Logging。

為了配置Tomcat在其內部日志記錄中使用替代日志記錄框架,必須使用保留完整的Commons Logging發現機制的JULI實現來替換硬編碼為使用java.util.logging的JULI實現。 此類實現作為附加組件提供。 有關如何配置Tomcat以將Log4j框架用於其內部日志記錄的說明,可以在下面找到。

我也找到了這個答案 (針對另一個問題),也從這里找到了這個問題 ,這里的后者似乎有幾乎相同的問題,沒有任何解決方案。

我已經在Tomcat的bin / lib文件夾中搜索了所有JAR,但沒有找到這樣的類(包括tomcat-juli.jartomcat-juli-adapters.jar各種版本)。 除了在前面鏈接的《 Tomcat 8日志記錄》指南之外,在互聯網上幾乎找不到對該類/接口的任何引用。 因此,問題是:Tomcat為什么要尋找此類?

再次從鏈接指南中可以看到以下內容:

如果使用實現org.apache.juli.WebappProperties接口的類加載器(Tomcat的Web應用程序類加載器實現),則還將對${classloader.webappName}${classloader.hostName}${classloader.serviceName}分別替換為Web應用程序名稱,主機名和服務名。

為什么我的Tomcat類加載器實際上沒有實現,或者為什么找不到呢?

我們的Ant Tomcat配置過程將Tomcat 7的tomcat-juli.jar復制到Tomcat 8,從而導致了問題。

從Apache的Tomcat Extras部分獲取適用於Tomcat 8的正確tomcat-juli.jar可以解決此問題。

該接口位於tomcat-juli.jar中,Tomcat的Web應用程序類加載器實現了該接口。

您無需切換到基於log4j的日志記錄即可解決此問題。

在某處的類路徑中似乎缺少tomcat-juli.jar(應位於bin目錄中)。 不確定這是否是您需要配置錯誤的部分,需要調整Eclipse與Apache Tomcat的集成。

我建議您從ASF進行全新的Tomcat 8.0.15安裝,確保從命令行運行,然后嘗試將其與STS / Eclipse集成。

在您使用的Tomcat上檢查版本。 我們期望現在默認情況下是Tomcat 8.5.4或更高版本。 如果要使用舊版本,則需要按照發行說明中的​​說明添加tomcat-juli

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM