Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
前面一段时间看到Tomcat7.0发布了几个测试版,由于没有稳定,也就没有测试了,今天看到新闻,看到Tomcat7.0正式版已经发布了,到上下载下来,看看效果如何。
下面列出Tomcat 7的一些新特性介绍:
Tomcat 7完全支持Servlet 3.0规范
Tomcat 7新增了对Java注释的支持
Tomcat 7通过l动态配置引用类库的功能
Tomcat 7改进了安全回话的跟踪
Tomcat 7改进了关系服务时候的功能,让关闭时的地址可以配置
Tomcat 7改进了启动类,目前Tomcat 7启动过程无须任何配置文件
Tomcat 7新增了配置参数,可以配置Tomcat 7的执行队列超时时间,和执行大大小限制
servlet和tomcat的关系
… …
新特性带来的是方便和更好地支持Java新特性。感觉Tomcat7 Servlet3.0的支持和Java Annotaion的支持是应现在流行0配置或尽量减少配置文件的需要,Servlet3.0 的到来,感觉最深地是带来直接在code level 直接Annotation即可配置一个Servlet,并不需要以前的在l下配置了。
下载Tomcat7.0后,和MyEclipse进行整合,MyEclipse配置Tomcat7.0如下图
发现在启动的时候报了一个错误
java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
    at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:55)
Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
    at java.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 1 more
Exception in thread "main"
 
到网上搜索了一下,比较好解决,有个网址mianniu/programming-world/java-lang-noclassdeffounderror-orgapachejulilogginglogfactory-at-org-apache-catalina-startup-bootstrap上说
Solutions
1. In Eclipse, Open the “Server” tab.
2. Double click on the “Tomcat6″ entry to see the configuration.
3. Then click on the “Open launch configuration” link in the “General information” block.
4. In the dialog, select the “Classpath” tab.
5. Click the “Add external jar” button.
6. Select the file “/usr/share/tomcat6/bin/tomcat-juli.jar”
7. Close the dialog.
8. Start tomcat 6 from Eclipse.
实际上,就是把bin/tomcat-juli.jar add tomcat classpath下,效果如下:
重新启动Tomcat7.0,发现启动成功。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。