tomcat启动时出现:警告: Couldn't initialize Jasper
java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
at org.apache.jasper.runtime.JspFactoryImpl.<init>(JspFactoryImpl.java:44)
at org.apache.jasper.compiler.JspRuntimeContext.<clinit>(JspRuntimeContext.java:82)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.apache.catalina.core.JasperListener.lifecycleEvent(JasperListener.java:65)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:99)
at org.apache.catalina.startup.Catalina.load(Catalina.java:640)
at org.apache.catalina.startup.Catalina.load(Catalina.java:665)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: 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:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 17 more
求有经验的说下解决方法,弄了一天了,还是不行,快疯了!Tomcat

解决方案 »

  1.   

    且输入入http://localhost:8080/进不了主页.
      

  2.   

    java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory缺包
      

  3.   

    我之前在网上找说缺少这个包,你的意思是这个包需要放置在哪个目录上,在Tomcat/bin目录下已经有这个包.
      

  4.   

    我下的Tomcat是7.0.42版本,在Tomcat的bin目录下有你说的这个包:tomcat-juli.jar. 
    不好意思我这几天刚学web,前辈能说的详细点么?我点击startup.bat就出现了那个错误,求解.
      

  5.   

    如果用的是MyEclipse的话
    可以试试
    windwo->preferences->MyEclipse Enterprise workbench->servers->tomcat
    选择版本之后有点开有个paths把缺的jar加进去试试
      

  6.   

    我试过你说的,没用,把那个包add进去,但没用.
      

  7.   

    好吧,终极解决办法换tomcat,官网下
      

  8.   

    很明显初始化失败,org/apache/juli/logging/LogFactory缺失,找不到,你可以百度下java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory看缺少什么jar包
      

  9.   


    放到tomcat的lib目录下试了,还是出错.
      

  10.   

    有可能是这种情况!这个重复的包是指lib或bin目录下包冲突吗?还是哪里?能具体指明是哪个包冲突?
      

  11.   

    有一说你的eclipse内核不支持tomcat7
      

  12.   


    放到tomcat的lib目录下试了,还是出错.编辑catalina.bat 文件
    set CLASSPATH=%CATALINA_HOME%\bin\tomcat-juli.jar
      

  13.   

    我没在eclipse中启动tomcat7,直接在tomcat7 bin目录中startup.bat中执行的.已经配置了环境变量.
      

  14.   


    放到tomcat的lib目录下试了,还是出错.编辑catalina.bat 文件
    set CLASSPATH=%CATALINA_HOME%\bin\tomcat-juli.jar
    还是出错.前辈,我把我的tomcat文件上传上来,你运行下试试,看怎么解决?行不?
      

  15.   

    @rainbowsix 上传不方便,如果前辈愿意的话,我发你邮箱!
      

  16.   

    匆匆的看了下,网上查了下,错误原因你看看!!!!java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决博客分类: 问题
    ApacheJavaTomcatMyeclipse 
    自己前一段时间出现了这个问题,通过在网上搜索,大概知道了原因,整理下一,以供大家参考。 
    将项目部署好后,启动tomcat后报错,java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory 
    报这个错说明你用的是tomcat7。 目前的MyEclipse的内核为Eclipse3.5.* 尚不能提供直接对tomcat 7的支持,最新的Eclipse3.6.*可以直接支持。 
    解决方法有两个: 
    一、打开myeclipse,Preferentces->MyEclipse->Servers->Tomcat->Tomcat 6.x 
    ,载入Tomcat7,在"Paths"下,点击“Add JAR/ZIP”,加载tomcat7下的……/bin/tomcat-juli.jar。点击“OK”. 
    二、可以设置环境变量添加classpath到CATALINE_HOME/bin/tomcat-juli.jar,Tomcat默认启动会自动加载。 
    classpath=……;%CATALINA_HOME%\bin\tomcat-juli.jar; ok了,这两个方法都是可以的,希望给大家带来方便。
      

  17.   

    startup.bat如果报错一闪一闪是可以看这个tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME 与JAVA_HOME的信息,CATALINA_HOME即tomcat的主目录,JAVA_HOME即java安装的主目录,jdk的主目录。
    首先,要在环境变量处,配置JAVA_HOME,注意变量值是jdk的主目录,不是bin目录,并且不要加分号,如图:
    然后,如果这样配置,startup.bat还是一闪而过,可以右键点击startup.bat,编辑,在文本的最后敲上pause,保存后重新运行startup.bat,这时候窗口不会再一闪而过,而是停留在桌面上(调试成功,把pause去掉即可)。如果有错误信息,这时候会显示出来,可以再根据它的错误提示,上网搜索对应的解决办法,下面是在错误提示窗口遇到过的问题:
    一、 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
    Tomcat的startup.bat,它调用了catalina.bat,而catalina.bat则调用了setclasspath.bat,只要在setclasspath.bat的开头声明环境变量(红色两行)就可以了,原因是后来较新版本安装完不会自动登记环境变量JAVA_HOME,JRE_HOME。
    给setclasspath.bat的开头添加红色标记部分,如下:
    rem ---------------------------------------------------------------------------
    rem Set CLASSPATH and Java options
    rem
    rem $Id: setclasspath.bat 505241 2007-02-09 10:22:58Z jfclere $
    rem ---------------------------------------------------------------------------set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20
    set JRE_HOME=C:\Program Files\Java\jre6rem Make sure prerequisite environment variables are set
    if not "%JAVA_HOME%" == "" goto gotJdkHome
    if not "%JRE_HOME%" == "" goto gotJreHome
    echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
    echo At least one of these environment variable is needed to run this program
    goto exit这样在每次运行startup.bat时就自动注册了JAVA_HOME,JRE_HOME。
    运行startup.bat,提示“信息:Server startup in xxxxx ms”  OK 大功告成。
    二、Cannot find ""d:\apache-tomcat-6.0.32"\bin\setclasspath.bat"
    这个时候,可能是CATALINA_HOME的值在某个地方被写死了,像我的绿色版tomcat在bin文件下多了一个setenv.bat的文件,打开一看果然是在这里面被写死了CATALINA_HOME的路径,这应该是为了某种原因被人后加上的设置文件,把这个文件删除之后,tomcat可以正常运行了。这种情况,可以去看catalina.bat中的配置,如下图,可能配置死的内容就在这个文件里。
      

  18.   


    [email protected]太激动了
      

  19.   


    [email protected]太激动了
    启动正常啊~~十月 12, 2013 9:33:41 上午 org.apache.catalina.core.AprLifecycleListener init
    信息: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.4
    .6.
    十月 12, 2013 9:33:41 上午 org.apache.catalina.core.AprLifecycleListener init
    信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], ra
    ndom [true].
    十月 12, 2013 9:33:42 上午 org.apache.catalina.core.AprLifecycleListener initial
    izeSSL
    信息: OpenSSL successfully initialized (OpenSSL 1.0.1d 5 Feb 2013)
    十月 12, 2013 9:33:44 上午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["http-apr-8080"]
    十月 12, 2013 9:33:44 上午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["ajp-apr-8009"]
    十月 12, 2013 9:33:44 上午 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 3817 ms
    十月 12, 2013 9:33:44 上午 org.apache.catalina.core.StandardService startInterna
    l
    信息: Starting service Catalina
    十月 12, 2013 9:33:44 上午 org.apache.catalina.core.StandardEngine startInternal信息: Starting Servlet Engine: Apache Tomcat/7.0.42
    十月 12, 2013 9:33:44 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\ch02
    十月 12, 2013 9:33:44 上午 org.apache.catalina.util.SessionIdGenerator createSec
    ureRandom
    信息: Creation of SecureRandom instance for session ID generation using [SHA1PRN
    G] took [139] milliseconds.
    十月 12, 2013 9:33:44 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\docs
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\exampl
    es
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\host-m
    anager
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\manage
    r
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\ROOT
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\Test
    十月 12, 2013 9:33:46 上午 org.apache.coyote.AbstractProtocol start
    信息: Starting ProtocolHandler ["http-apr-8080"]
    十月 12, 2013 9:33:46 上午 org.apache.coyote.AbstractProtocol start
    信息: Starting ProtocolHandler ["ajp-apr-8009"]
    十月 12, 2013 9:33:46 上午 org.apache.catalina.startup.Catalina start
    信息: Server startup in 2294 ms
      

  20.   

    java 版本:
    E:\apache-tomcat-7.0.42\bin>java -version
    java version "1.7.0_02"
    Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)
      

  21.   


    [email protected]太激动了
    启动正常啊~~十月 12, 2013 9:33:41 上午 org.apache.catalina.core.AprLifecycleListener init
    信息: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.4
    .6.
    十月 12, 2013 9:33:41 上午 org.apache.catalina.core.AprLifecycleListener init
    信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], ra
    ndom [true].
    十月 12, 2013 9:33:42 上午 org.apache.catalina.core.AprLifecycleListener initial
    izeSSL
    信息: OpenSSL successfully initialized (OpenSSL 1.0.1d 5 Feb 2013)
    十月 12, 2013 9:33:44 上午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["http-apr-8080"]
    十月 12, 2013 9:33:44 上午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["ajp-apr-8009"]
    十月 12, 2013 9:33:44 上午 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 3817 ms
    十月 12, 2013 9:33:44 上午 org.apache.catalina.core.StandardService startInterna
    l
    信息: Starting service Catalina
    十月 12, 2013 9:33:44 上午 org.apache.catalina.core.StandardEngine startInternal信息: Starting Servlet Engine: Apache Tomcat/7.0.42
    十月 12, 2013 9:33:44 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\ch02
    十月 12, 2013 9:33:44 上午 org.apache.catalina.util.SessionIdGenerator createSec
    ureRandom
    信息: Creation of SecureRandom instance for session ID generation using [SHA1PRN
    G] took [139] milliseconds.
    十月 12, 2013 9:33:44 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\docs
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\exampl
    es
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\host-m
    anager
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\manage
    r
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\ROOT
    十月 12, 2013 9:33:45 上午 org.apache.catalina.startup.HostConfig deployDirector
    y
    信息: Deploying web application directory E:\apache-tomcat-7.0.42\webapps\Test
    十月 12, 2013 9:33:46 上午 org.apache.coyote.AbstractProtocol start
    信息: Starting ProtocolHandler ["http-apr-8080"]
    十月 12, 2013 9:33:46 上午 org.apache.coyote.AbstractProtocol start
    信息: Starting ProtocolHandler ["ajp-apr-8009"]
    十月 12, 2013 9:33:46 上午 org.apache.catalina.startup.Catalina start
    信息: Server startup in 2294 ms为啥我启动有错误!怎么搞得?是什么问题?前辈你是直接在bin/startup.dat启动的吗?
      

  22.   

    @rainbowsix 能说下你的环境变量吗?
      

  23.   

    CATALINA_HOME:D:\Program Files\apache-tomcat-7.0.42
    JAVA_HOME:D:\Program Files\Java\jdk1.7.0_40
    Path:...;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar不要自己设置 CATALINA_HOME, apache-tomcat-7.0.42 放到D盘根目录下D:\Paht变量不要添加 那些.jar文件
      

  24.   

    CATALINA_HOME:D:\Program Files\apache-tomcat-7.0.42
    JAVA_HOME:D:\Program Files\Java\jdk1.7.0_40
    Path:...;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar不要自己设置 CATALINA_HOME, apache-tomcat-7.0.42 放到D盘根目录下D:\Paht变量不要添加 那些.jar文件
    前辈,非常感谢你的帮助,问题找到了,有次编译项目缺少sevrlet-api.jar,我就把tomcat下的lib目录下的jasper.jar,servlet-api.jar,jasper-el.jar,jsp-api.jar放到了JDK的lib目录了.造成重复了吧. 噢,问下前辈,为啥不要设置CATALINA_HOME?一些书上都说要设置的,Tomcat7.x版本更特殊吗?望解答!马上结贴给分...
      

  25.   

    CATALINA_HOME:D:\Program Files\apache-tomcat-7.0.42
    JAVA_HOME:D:\Program Files\Java\jdk1.7.0_40
    Path:...;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar不要自己设置 CATALINA_HOME, apache-tomcat-7.0.42 放到D盘根目录下D:\Paht变量不要添加 那些.jar文件
    前辈,非常感谢你的帮助,问题找到了,有次编译项目缺少sevrlet-api.jar,我就把tomcat下的lib目录下的jasper.jar,servlet-api.jar,jasper-el.jar,jsp-api.jar放到了JDK的lib目录了.造成重复了吧. 噢,问下前辈,为啥不要设置CATALINA_HOME?一些书上都说要设置的,Tomcat7.x版本更特殊吗?望解答!马上结贴给分...catalina.bat 是tomcat的启动脚本, 里面脚本有设置,不需要自己设置,从tomcat4开始就不需要自己弄。 更老的是否需要就不知道了。
      

  26.   

    CATALINA_HOME:D:\Program Files\apache-tomcat-7.0.42
    JAVA_HOME:D:\Program Files\Java\jdk1.7.0_40
    Path:...;%CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar不要自己设置 CATALINA_HOME, apache-tomcat-7.0.42 放到D盘根目录下D:\Paht变量不要添加 那些.jar文件
    前辈,非常感谢你的帮助,问题找到了,有次编译项目缺少sevrlet-api.jar,我就把tomcat下的lib目录下的jasper.jar,servlet-api.jar,jasper-el.jar,jsp-api.jar放到了JDK的lib目录了.造成重复了吧. 噢,问下前辈,为啥不要设置CATALINA_HOME?一些书上都说要设置的,Tomcat7.x版本更特殊吗?望解答!马上结贴给分...catalina.bat 是tomcat的启动脚本, 里面脚本有设置,不需要自己设置,从tomcat4开始就不需要自己弄。 更老的是否需要就不知道了。噢,懂了,以后遇到问题更要麻烦你了.,好了,结贴了.