Tomcat 启动失败,出现 ClassNotFoundException
Tomcat failing to start with ClassNotFoundException
我正在使用 Tomcat v7.0 和 Eclipse IDE 作为 Web 应用程序。尝试启动服务器时,我得到以下 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.run(URLClassLoader.java:366)
at java.net.URLClassLoader.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
在搜索时,我找到了包含上述 class 的 apache-tomcat-util 5.23 jar,但是在将 jar 添加到 Tomcat 的启动配置后,我得到了一系列其他错误。相同的服务器安装在不同的工作 space 中使用不同的 webapp 效果很好。这里有什么问题?
您已经破坏了您的安装,可能是在您找到 apache-tomcat-util-5.23.jar
之前,而且很可能是在将该 JAR 文件添加到您的安装之后。您添加的那个 JAR 来自 Tomcat 版本,该版本已有多年历史并且与您的新版本不兼容。
删除您现有的 Tomcat 安装(但如果您在其中放置任何您想要保留的内容,请保存 webapps/
目录)并重新安装。
如果您仍然遇到该错误,请检查以确保您的 IDE 配置正确:Tomcat 随它需要启动的每个 JAR 一起提供,因此如果它无法启动,这是因为 IDE 的集成配置错误。
就我而言,唯一的问题是 Apache Tomcat 的版本,我使用的是 Apache 7.0,当我更改为 Apache 8.0 时,它将 运行 完全正常。
我正在使用 Tomcat v7.0 和 Eclipse IDE 作为 Web 应用程序。尝试启动服务器时,我得到以下 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.run(URLClassLoader.java:366)
at java.net.URLClassLoader.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
在搜索时,我找到了包含上述 class 的 apache-tomcat-util 5.23 jar,但是在将 jar 添加到 Tomcat 的启动配置后,我得到了一系列其他错误。相同的服务器安装在不同的工作 space 中使用不同的 webapp 效果很好。这里有什么问题?
您已经破坏了您的安装,可能是在您找到 apache-tomcat-util-5.23.jar
之前,而且很可能是在将该 JAR 文件添加到您的安装之后。您添加的那个 JAR 来自 Tomcat 版本,该版本已有多年历史并且与您的新版本不兼容。
删除您现有的 Tomcat 安装(但如果您在其中放置任何您想要保留的内容,请保存 webapps/
目录)并重新安装。
如果您仍然遇到该错误,请检查以确保您的 IDE 配置正确:Tomcat 随它需要启动的每个 JAR 一起提供,因此如果它无法启动,这是因为 IDE 的集成配置错误。
就我而言,唯一的问题是 Apache Tomcat 的版本,我使用的是 Apache 7.0,当我更改为 Apache 8.0 时,它将 运行 完全正常。