一尘不染

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

jsp

我刚开始使用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

线程“主”中的异常


阅读 244

收藏
2020-06-10

共1个答案

一尘不染

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

你不应该那样做。这会导致类加载灾难。您不应移动/复制/更改servlet容器自己的库。您应该取消触摸它们,并且切勿在JRE / JDK
/lib/lib/ext文件夹中丢弃与Java SE无关的任意JAR 。清理那些文件夹。

值得一提的是,即使您似乎尚未这样做,也不应将servlet容器特定的JAR文件放在webapp的/WEB-INF/lib文件夹中。

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

2020-06-10