zoukankan      html  css  js  c++  java
  • Tomcat启动一半闪退问题解决

            近期刚刚接触Tomcat。对其还不是非常了解。

    在这几天,遇到一个Tomcat启动闪退的问题。通过查阅各种资料。算是完美解决。在此分享给朋友们。


            首先。确定你的问题在哪里。有两个方法,你能够通过日志去查询,也能够直接去一般处理程序中启动。

            1.查询错误:win+R 输入cmd,进入一般处理程序。

    通过cd 找到你Tomcat的bin目录。在bin以下输入startup.bat run执行,执行后,假设提示。缺少JAVA_HOME 或者缺少JRE_HOME(如图所看到的)

    说明你的环境变量不正确,或者是缺少环境变量。

             

            2.解决方式:通过命令行的提示看到,这是由于电脑上没有配置JAVA_HOME或者JRE_HOME导致的。那么以下加入上JAVA_HOME和JRE_HOME。详细步骤为计算机->属性->环境变量,然后加入系统变量:如图所看到的

            


            加入完JAVA_HOME和JRE_HOME两个系统变量之后,在将这两个变量放到path系统变量中。方法是,在path变量值的后面直接追加 【;%JAVA_HOME%;%JRE_HOME% 】如图。注意分号是环境变量的切割符号,不可少。

            

            设置好之后,确定,保存,又一次启动一般处理程序。

    继续执行步骤一,这时的执行结果,一般例如以下:假设,你的Tomcat能够启动了,那么恭喜你。问题攻克了!

            

          3.假设,启动到这一步之后。Tomcat启动到中间,又出现错误。这时,我们就要通过日志,去查询错误。进入Tomcat根文件夹下的Logs。找到相应的catalina.2015-0*-**.log,在这里,你会看到警告和错误。例如以下所看到的:

    警告: Couldn't initialize Jasper
    java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Class.java:344)
    	at org.apache.catalina.core.JasperListener.lifecycleEvent(JasperListener.java:63)
    	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    	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:638)
    	at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:483)
    	at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
    	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
    Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.JspFactory
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    	... 15 more
    
    七月 19, 2015 3:26:10 下午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["http-bio-8080"]
    七月 19, 2015 3:26:10 下午 org.apache.coyote.AbstractProtocol init
    信息: Initializing ProtocolHandler ["ajp-bio-8009"]
    七月 19, 2015 3:26:10 下午 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 952 ms
    七月 19, 2015 3:26:10 下午 org.apache.catalina.startup.Catalina start
    严重: The required Server component failed to start so Tomcat is unable to start.
    org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    	at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:483)
    	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
    	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
    Caused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    	at org.apache.naming.NamingContext.<clinit>(NamingContext.java:58)
    	at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:252)
    	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731)
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    	... 7 more
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    	... 13 more
            4.解决方式:这个错误,困扰了我非常久,一直找不到解决方式,在网上查阅了非常多资料。也没有办法解决。最后,在一个论坛的角落里。找到了解决方式。这个错误的主要原因就是找不到LogFactory,引起这个错误有非常多可能,当中,有一种就是你在jdk的bin以下,加入了反复的jar包,或者类似功能的jar包,导致反复,还有就是在Tomcat的bin以下加入的jar包引起的错误。我是在jdk以下加入了一个javaee.jar 解决当时出现的Javac不是内部命令的错误。

    导致Tomcat启动中途失败。

          学习还在继续。Tomcat的研究也在进行中,边学习,边总结。变分享。假设有错误,欢迎指正。感激不尽!



  • 相关阅读:
    Eclipse 代码模板
    Eclipse 安装插件
    Eclipse 任务管理
    Eclipse 添加书签
    Eclipse 重构菜单
    Eclipse 浏览(Navigate)菜单浏览 Eclipse 工作空间
    Eclipse 查找
    Eclipse 悬浮提示
    Eclipse 快速修复
    Eclipse 内容辅助
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6903361.html
Copyright © 2011-2022 走看看