Eclipse java.lang.NoClassDefFoundError:org/apache/juli/logging/LogFactory
似乎在启动我的Java应用程序时遇到问题: 线程“main”java.lang.NoClassDefFoundError中出现异常: org/apache/juli/logging/LogFactory位于 org.apache.catalina.util.LifecycleBase.(LifecycleBase.java:37) 原因:java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory位于 java.net.URLClassLoader$1.run(URLClassLoader.java:366)位于 java.net.URLClassLoader$1.run(URLClassLoader.java:355)在 java.security.AccessController.doPrivileged(本机方法)位于 java.net.URLClassLoader.findClass(URLClassLoader.java:354)位于 loadClass(ClassLoader.java:423)位于 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)位于 loadClass(ClassLoader.java:356)。。。还有一个 在此处尝试解决方案:Eclipse java.lang.NoClassDefFoundError:org/apache/juli/logging/LogFactory,eclipse,tomcat,Eclipse,Tomcat,似乎在启动我的Java应用程序时遇到问题: 线程“main”java.lang.NoClassDefFoundError中出现异常: org/apache/juli/logging/LogFactory位于 org.apache.catalina.util.LifecycleBase.(LifecycleBase.java:37) 原因:java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory位于 java.net.
但我已经看到tomcat-juli.jar了。我也在使用Tomcat7。可能有什么问题?您的虚拟机找不到类
org/apache/juli/logging/LogFactory
请检查您使用的tomcat-juli.jar中是否存在此类(解压缩并搜索文件),如果不存在,请从apache网站下载库,如果存在,请将tomcat-juli.jar放入路径(lib目录)Tomcat用来加载类的。如果您的Tomcat没有找到它,您可以在您正在使用的JRE的lib目录中复制jar 在我们的例子中,Eclipse 3.5的Sysdeo Tomcat插件使用了错误的版本。修复方法:
- 使用
而不是tomcatPluginV33
(提取到tomcatPluginV321
)C:\eclipse\dropins
- 确保将
放在tomcatDevloaderTomcat7.jar
文件夹中lib
- 在窗口>首选项>Tomcat中,将Tomcat版本设置为7.x
这个问题可能是我们的环境所独有的;但是,为了子孙后代的缘故,我还是要在这里记录它。如果您使用jsvc以tomcat的身份运行tomcat(以root的身份运行
/etc/init.d/tomcat
),编辑/etc/init.d/tomcat
并将$CATALINA_HOME/bin/tomcat juli.jar
添加到类路径
这发生在我身上,因为我在tomcat 7安装中使用了tomcat 5.5CATALINA.sh
文件。使用Tomcat 7安装附带的catalina.sh
修复了这个问题。我在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>
org.apache.tomcat
tomcat util
运行时
在Ubuntu 14.04 LTS上
/usr/share# mv /opt/tomcat/apache-tomcat-7.0.56/ tomcat7
为我解决了这个问题。那里有一个指向/opt的符号链接。在opt目录中有.././java链接,这些链接不会指向/usr/share/java,因为文件实际位于/opt中,我也遇到了同样的问题,帮助我的是:
完成。这不是答案。这应该在评论中。@adityasing这是一个答案。它包括问题诊断和解决方案说明。它恰巧是简洁的——这绝不会使它失去资格。使用Spring引导和兼容Servlet 3.0版本的Tomcat帮助很大。我不得不加上这个,谢谢!(我的目前在“提供”的范围内)。效果很好…:D
org.apache.tomcat-tomcat-juli${used.tomcat.version}