雄猫 8 无法启动



我一直在寻找很多,但找不到答案。我刚刚升级了 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 的分支,默认情况下,它是硬编码的,可以使用 java.util.logging framework。这确保了雄猫的内部 日志记录和任何 Web 应用程序日志记录将保持独立,即使 如果Web应用程序使用Apache Commons Logging。

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

我也从这里找到了这个答案(对一个不同的问题)和这个问题,后者似乎有一个几乎相同的问题,没有任何解决方案。

我已经搜索了Tomcat的bin/lib文件夹中的所有JAR,但没有找到这样的类(包括各种版本的tomcat-juli.jartomcat-juli-adapters.jar)。除了之前链接的 Tomcat 8 日志记录指南外,我在互联网上几乎没有找到任何对此类/接口的引用。所以,问题是:雄猫为什么要找这个班级?

再次来自链接的指南,它是这样说的:

如果使用实现 org.apache.juli.WebappProperties界面(Tomcat的Web应用程序) 类加载器这样做),然后也执行属性替换 ${classloader.webappName}${classloader.hostName}和 替换为 Web 应用程序的${classloader.serviceName} 名称、主机名和服务名称。

为什么我的 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,如发行说明中所述

相关内容

  • 没有找到相关文章

最新更新