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通过web.xml动态配置引用类库的功能
◆Tomcat 7改进了安全回话的跟踪
◆Tomcat 7改进了关系服务时候的功能,让关闭时的地址可以配置
◆Tomcat 7改进了启动类,目前Tomcat 7启动过程无须任何配置文件
◆Tomcat 7新增了配置参数,可以配置Tomcat 7的执行队列超时时间,和执行大大小限制
… …
新特性带来的是方便和更好地支持Java新特性。感觉Tomcat7 对Servlet3.0的支持和Java Annotaion的支持是应现在流行0配置或尽量减少配置文件的需要,Servlet3.0 的到来,感觉最深地是带来直接在code level 直接Annotation即可配置一个Servlet,并不需要以前的在web.xml下配置了。
下载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.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.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"
到网上搜索了一下,比较好解决,有个网址http://mianniu.com/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,发现启动成功。