我正在使用Tomcat v7.0和Eclipse IDE来使用Webapp。尝试启动服务器时,我得到以下ClassNotFoundException
java.lang.NoClassDefFoundError: org/apache/tomcat/util/digester/Rule
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585)
at java.lang.Class.getConstructor0(Class.java:2885)
at java.lang.Class.newInstance(Class.java:350)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:239)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:426)
Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.digester.Rule
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
在搜索时,我发现包含上述类的apache-tomcat-util 5.23 jar但在将jar添加到Tomcat的启动配置后,我得到了一系列其他错误。相同的服务器安装在具有不同webapp的不同工作空间中工作良好。这是什么问题?
答案 0 :(得分:1)
您可能在找到apache-tomcat-util-5.23.jar
之前破坏了您的安装,并且在将JAR文件添加到您的安装之后肯定是这样。您添加的JAR来自Tomcat版本,该版本已有很多年历史,与您的新版本不兼容。
删除现有的Tomcat安装(但如果您要保留任何内容,请保存webapps/
目录)并重新安装。
如果您仍然遇到该错误,请检查以确保您的IDE配置正确:Tomcat随每个需要启动的JAR一起提供,因此如果它无法启动,则是因为IDE的集成配置错误。
答案 1 :(得分:0)
在我的情况下,唯一的问题是我使用的Apache Tomcat版本是Apache 7.0,当我更改为Apache 8.0时,它将运行得很好。