首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫8不能启动

猫8不能启动
EN

Stack Overflow用户
提问于 2014-11-13 00:00:52
回答 3查看 4.4K关注 0票数 2

我已经找了很多次了,但找不到答案。我刚刚升级了STS (从3.2),以便我可以试用Tomcat 8(从7.0.53)。我有STS 3.6.2和Tomcat 8.0.15。在添加并配置TC8服务器之后,拒绝启动它,并出现以下根错误:

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

所以我读了相当多,发现本指南从硬编码的共用日志转换到Log4J,没有任何运气。有关节选:

Apache的内部日志使用JULI,这是Apache的一个打包的重命名叉,默认情况下,使用java.util.logging框架是硬编码的。这将确保Tomcat的内部日志记录和任何web应用程序日志记录保持独立,即使web应用程序使用。 要将Tomcat配置为使用替代日志框架来进行内部日志记录,必须用保留完全共用日志发现机制的JULI实现替换硬编码的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类加载器没有真正实现它,或者为什么它没有找到它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-19 18:54:19

我们的Ant Tomcat配置过程将Tomcat 7的tomcat-juli.jar复制到Tomcat 8中,从而引发了问题。

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

票数 4
EN

Stack Overflow用户

发布于 2014-11-13 21:41:23

该接口位于tomcat-juli.jar中,Tomcat的web应用程序类加载器实现了该接口。

您不需要切换到基于log4j的日志记录来解决此问题。

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

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

票数 1
EN

Stack Overflow用户

发布于 2017-11-23 06:33:43

检查您正在使用的Tomcat版本。默认情况下,我们预计Tomcat 8.5.4或更高。如果您想使用旧版本,则需要添加tomcat-juli,如发行说明中所述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26898998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档