tomcat工作正常,但不知道出了什么问题?

时间:2013-01-02 11:01:15

标签: jsp tomcat servlets tomcat7

我刚开始使用tomcat并且运行良好,但是从昨天开始我遇到了麻烦。我也重新安装了它。我在其日志文件中收到的错误报告发布在下面....

  

块引用

   2013-01-01 19:10:21 Commons Daemon procrun stderr initialized
   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(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
     at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
   ... 1 more

线程“main”中的异常

1 个答案:

答案 0 :(得分:1)

  

实际上我将tomcat中的库复制到了jdk的ext文件夹中。

你不应该这样做。它会导致类加载灾难。您不应该移动/复制/更改servletcontainer自己的库。您应该取消它们,并且永远不要删除JRE / JDK /lib/lib/ext文件夹中与Java SE无任何关联的任意JAR。清理那些文件夹。

在相关的说明中,即使您似乎没有这样做,也不应该将servletcontainer特定的JAR文件放在webapp的/WEB-INF/lib文件夹中。

这是一个常见的启动程序错误,以避免JSP / Servlet API上的编译错误或“简化”编译而不会摆弄%CLASSPATH%-cp / -classpath。如果您使用的是Eclipse / Netbeans之类的IDE,那么您实际上应该在IDE中注册服务器运行时,并将其与Web项目关联为“目标运行时”。如果您使用的是普通javac,那么您实际上应该使用-cp / -classpath参数来指定用于编译的特定于servletcontainer的JAR文件。要进一步抽象以避免重新输入整个类路径值,您应该将命令放在可重用的.bat.cmd文件中,或者只是拥有像Ant,Ivy甚至是一个像样的构建工具像Eclipse / Netbeans这样的IDE。

另见:

相关问题