似乎在启动我的Java应用程序时遇到问题:
线程“main”中的异常java.lang.NoClassDefFoundError: org / apache / juli / logging / LogFactory at org.apache.catalina.util.LifecycleBase。(LifecycleBase.java:37) 引起:java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory at java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:423)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)at at java.lang.ClassLoader.loadClass(ClassLoader.java:356)... 1更多
在这里尝试解决方案: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
但我已经看到了tomcat-juli.jar。我也在使用Tomcat 7.可能出错了什么?
答案 0 :(得分:15)
你的vm没有找到类org/apache/juli/logging/LogFactory
检查你使用的tomcat-juli.jar中是否存在此类(解压缩并搜索文件),如果不存在则从apache web下载库如果它存在的其他站点将tomcat-juli.jar放在Tomcat用来加载类的路径(lib目录)中。如果您的Tomcat找不到它,您可以将jar复制到您正在使用的JRE的lib目录中。
答案 1 :(得分:11)
我在Maven中使用tomcat-embed-core::7.0.47
时遇到了这个问题。我不确定为什么他们没有将tomcat-util
添加为运行时依赖项,因此我将自己的运行时依赖项添加到我自己的项目中。
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-util</artifactId>
<version><!-- version from tomcat-embed-core --></version>
<scope>runtime</scope>
</dependency>
答案 2 :(得分:8)
这件事发生在我身上,因为我使用Tomcat 5.5 catalina.sh
文件和Tomcat 7安装。使用Tomcat 7安装附带的catalina.sh
修复了问题。
答案 3 :(得分:7)
如果您使用jsvc将tomcat作为tomcat运行(以root身份运行/etc/init.d/tomcat
),请修改/etc/init.d/tomcat
并将$CATALINA_HOME/bin/tomcat-juli.jar
添加到CLASSPATH
。
答案 4 :(得分:4)
我有同样的问题,帮助我的是:
完成。
答案 5 :(得分:0)
在我们的例子中,正在使用错误版本的Eclipse 3.5的Sysdeo Tomcat插件。修复:
tomcatPluginV33
代替tomcatPluginV321
(摘录至C:\eclipse\dropins
)DevloaderTomcat7.jar
已放置在tomcat lib
文件夹这个问题可能是我们环境所特有的;但是,无论如何,为了后人,我会把它记录在这里。
答案 6 :(得分:0)
在Ubuntu 14.04 LTS上
/usr/share# mv /opt/tomcat/apache-tomcat-7.0.56/ tomcat7
为我解决了这个问题。那里有/ opt的符号链接。在opt目录中,那里的../../java链接不会指向/ usr / share / java,因为文件实际上在/ opt