Eclipse Tomcat 8赢得';开始

Eclipse Tomcat 8赢得';开始,eclipse,tomcat,logging,tomcat8,tomcat-juli,Eclipse,Tomcat,Logging,Tomcat8,Tomcat Juli,我一直在找,但找不到答案。我刚刚升级了STS(3.2版),所以我可以试用Tomcat8(7.0.53版)。我有STS 3.6.2和Tomcat 8.0.15。添加并配置TC8服务器后,它拒绝启动,并出现以下根错误: java.lang.ClassNotFoundException:org.apache.juli.WebappProperties 所以我读了很多书,发现通过Juli从硬编码的commons日志切换到Log4J,并没有任何运气地遵循它。相关摘录: ApacheTomcat的内部日志使

我一直在找,但找不到答案。我刚刚升级了STS(3.2版),所以我可以试用Tomcat8(7.0.53版)。我有STS 3.6.2和Tomcat 8.0.15。添加并配置TC8服务器后,它拒绝启动,并出现以下根错误:

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

所以我读了很多书,发现通过Juli从硬编码的commons日志切换到Log4J,并没有任何运气地遵循它。相关摘录:

ApacheTomcat的内部日志使用JULI,这是一种打包的日志 ApacheCommons日志的分支,默认情况下,硬编码使用 java.util.logging框架。这确保了Tomcat的内部 日志记录和任何web应用程序日志记录都将保持独立,即使 如果web应用程序使用Apache Commons日志记录

要配置Tomcat为其内部日志记录使用替代日志框架,必须替换 是硬编码的,使用java.util.logging和JULI实现 保留完整的公用日志记录发现机制。这样的 实现作为附加组件提供。如何操作的说明 将Tomcat配置为使用Log4j框架进行内部日志记录 可以在下面找到

我还发现(一个不同的问题),从这里,后者似乎有一个几乎相同的问题,没有任何解决方案

我搜索了Tomcat的bin/lib文件夹中的所有jar,没有找到这样的类(包括各种版本的
Tomcat juli.jar
Tomcat juli adapters.jar
)。除了前面链接的Tomcat8日志指南之外,我在互联网上几乎找不到任何关于这个类/接口的参考。所以,问题是:为什么Tomcat要找这个类

同样从链接的指南中,这里是它所说的:

如果使用实现
org.apache.juli.WebappProperties
interface(Tomcat的web应用程序 类加载器执行此操作)
然后还对
${classloader.webappName}
${classloader.hostName}
${classloader.serviceName}
将替换为web应用程序 名称、主机名和服务名


为什么我的Tomcat类加载器没有实际实现它,或者为什么它没有找到它?

该接口在Tomcat-juli.jar中,而Tomcat的web应用程序类加载器实现了该接口

您不需要切换到基于log4j的日志来修复此问题

tomcat-juli.jar(应该在bin目录中)似乎在某个类路径中丢失。不确定这是否是您的配置错误,需要调整Eclipse对ApacheTomcat的集成


我建议您从ASF开始安装一个干净的Tomcat 8.0.15,确保它可以从命令行运行,然后尝试将它与STS/Eclipse集成。

我们的Ant-Tomcat配置过程将Tomcat 7的Tomcat-juli.jar复制到Tomcat 8,从而导致了问题


从Apache的tomcat Extras部分获取tomcat 8的正确tomcat-juli.jar修复了这个问题。

检查您正在使用的tomcat的版本。我们期望Tomcat8.5.4或更高版本现在默认。如果您想使用较旧的版本,您需要添加tomcat juli,如发行说明中所述

我添加了Eclipse作为标记,因为tomcat服务器适配器来自Eclipse Webtools项目,该项目预先安装在STS中。