Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse java.lang.NoClassDefFoundError:org/apache/juli/logging/LogFactory_Eclipse_Tomcat - Fatal编程技术网

Eclipse java.lang.NoClassDefFoundError:org/apache/juli/logging/LogFactory

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.

似乎在启动我的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)。。。还有一个

在此处尝试解决方案:


但我已经看到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
  • 确保将
    DevloaderTomcat7.jar
    放在tomcat
    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.5
CATALINA.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中,我也遇到了同样的问题,帮助我的是:

  • 右键单击项目
  • 单击“属性”
  • 转到“Java构建路径”
  • 然后:“
  • 在那里,单击:添加外部jar
  • 添加:''Path/To/Tomcat/Bin/Tomcat juli.jar

  • 完成。

    这不是答案。这应该在评论中。@adityasing这是一个答案。它包括问题诊断和解决方案说明。它恰巧是简洁的——这绝不会使它失去资格。使用Spring引导和兼容Servlet 3.0版本的Tomcat帮助很大。我不得不加上这个,谢谢!(我的目前在“提供”的范围内)。效果很好…:D
    org.apache.tomcat-tomcat-juli${used.tomcat.version}