Tomcat 7 启动时出现 java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

在 Eclipse WTP 3.1.1 中换成了使用 Tomcat 7,当然选择的仍然是 Tomcat 6,只是指向的目录是 Tomcat 7 的,一启动便立马出现错误:

java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:60)
Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 1 more
Exception in thread "main"

Google 了下,原来是要把 $TOMCAT_HOME/bin/tomcat-juli.jar 额外加到 classpath 中去,在 Eclipse WTP 中的具体做法是:

创建的 Apache Tomcat v7.0 服务器,右键 Open,在 Overview 中的 General Information 里点击 Open launch configuration,会打开 Edit Configuration 窗口,进 Classpath 标签页,点亮 User Entries,按钮 Add External JARS 把 $TOMCAT_HOME/bin/tomcat-juli.jar 加进来 -- 加在 Bootstrap Entries 中也是可以的。

现在重启下你的 Tomcat 7 就能正常启动了。

参考:1. http://zghbwjl.blog.163.com/blog/static/12033667220107935846670/
2. http://mianniu.com/programming-world/java-lang-noclassdeffounderror-orgapachejulilogginglogfactory-at-org-apache-catalina-startup-bootstrap

类别: Mid-Ware. 标签: . 阅读(4,270). 订阅评论. TrackBack.

Leave a Reply

Be the First to Comment!

avatar
wpDiscuz