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的研究也在进行中,边学习,边总结,变分享,如果有错误,欢迎指正,感激不尽!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 09:45:32

Tomcat启动一半闪退问题解决的相关文章

8. Tomcat启动出现闪退问题解决方法

原因可能是由于下面问题导致的: 1.Tomcat环境在不同电脑上引用的jdk路径不同 比如:在A电脑上Tomcat引用的jdk路径为:C:\Java\jdk1.6.0_10 而在B电脑上jdk的安装路径为:D:\Java\jdk1.6.0_10 这样把Tomcat环境从A电脑移动B电脑上,就会出现闪退问题: 解决方法如下: 找到Tomcat安装目录下的startup.bat启动文件,进去找到如下: rem Guess CATALINA_HOME if not definedset JAVA_HO

(转)Tomcat 启动后 “闪退”

缘由 今天在一台新机器上部署开发环境,安装完Tomcat以后,运行startup.bat后出现“闪退”...在网上找到了解决方案,条理清晰且分析的很详尽.记录如下: 首先贴出原文链接: http://www.cnblogs.com/godtrue/p/4339045.html === 1:Tomcat是什么? Tomcat是当今世界上使用最为广泛的.开源免费的Servlet/JSP容器,其主要功能是用于发布JavaWeb应用. 更多的信息请参看: http://tomcat.apache.org

tomcat启动时闪退的解决办法

在使用免安装版的tomcat的时候,点击start.bat后出现闪退问题,并且tomcat服务启动失败.出现这个问题的主要原因是,在启动tomcat的时候,需要读取环境变量和配置信息,但是可能我们缺少了环境变量和配置信息,因此我们只要配置一下jdk的环境变量就可以了. 1.打开环境变量,新建一个系统变量"Java_Home",变量值为"C:\Program Files (x86)\Java\jdk1.7.0_72"(变量值就是你安装jdk的位置), 2.新建系统变量

Tomcat启动失败闪退

最近把电脑系统从win8升到了8.1(之前源于各种原因都没升外带升级失败),用都用了1个月了,突然发现tomcat启动不了,提示找不到什么什么- -,因为平时基本都是从开发工具里运行的服务器,都没有问题,再加上重装之前确定是好的(貌似,年头有点久了). 首先确定了下环境变量JAVA_HOME 的jdk路径没错,PATH里的%JAVA_HOME%/bin 和%JAVA_HOME%/jre/bin 都在,排除环境问题. 然后点进tomcat主目录的bin..突然发现里面居然只有2个jar包和2个ex

tomcat单独启动时闪退的解决办法,以及修改端口8080为80,

tomcat单独启动时闪退的解决办法: 点击" startup",马上就闪退了:原因一般都是没有配置%JAVA_HOME%和tomcat的环境变量造成的: 很简单: 在startup.bat那个文件下,编辑点进去之后,在最上边的echo off上面加上: SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_60 SET TOMCAT_HOME=C:\apache-tomcat-7.0.53 然后shutdown.bat里面也要加上这两句话: 然后重

iOS 启动连续闪退保护方案

引言 “如果某个实体表现出以下任何一种特性,它就具备自主性:自我修复.自我保护.自我维护.对目标的自我控制.自我改进.” —— 凯文·凯利 iOS App 有时可能遇到启动必 crash 的绝境:每次打开 App 都闪退,无法正常使用App. 为了尝试解决这个问题,微信读书开发了 iOS 连续闪退保护工具:GYBootingProtection,检测连续闪退,在连续闪退出现时,尝试自修复 App: 本文探讨了连续闪退问题的产生原因.检测.修复机制,以及如何在你的项目中引入.测试和使用 GYBoo

tomcat启动一闪就退出的错误无法查看错误信息的解决办法

tomcat 有错误时 启动startup.bat一闪就退出的解决办法 打开 startup.bat 文件 最后 把start 改为run tomcat启动一闪就退出的错误无法查看错误信息的解决办法,布布扣,bubuko.com

Tomcat学习笔记 - 错误日志 - Tomcat安装版安装后第二次启动后闪退(转)-- javac不是内部或外部命令 -- 配置java环境教程

如果安装成功并且安装完成第一次启动是成功的,第二次就闪退的话,原因之一是没有配置java的环境.在网上找的配制方法有很多错误,测试javac命令时候会提示不是内部或外部命令,找到一个正确的教程.如下,转载自百度经验:http://jingyan.baidu.com/article/1e5468f924210a484961b7f0.html 'JAVA' 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法相似. 原因一:没有安装jdk,只安装了jre 1 jdk1.7.0_60+jre才

Tomcat start.bat闪退:JRE_HOME环境变量配置不对

最近在配置Tomcat上遇到startup.bat启动闪退,在网上找了很多方法,都没解决.后来在网上找到两种问题,更改了两次,解决了.现将我遇到的问题分享,希望对遇到同样问题有帮助. 1.很多初学者对jdk的配置不明确,不知道jdk与jre是做什么的,配置文件的时候,难免将jdk与jre配置混淆. 建议卸载jdk后,在F盘新建jdk文件,在里面新建jdk.jre文件,便于区分. 2.安装jdk,第一个路径:jdk路径(如果默认路径是自己建立的路径,则不需更改) 第二个路径:jre路径(如果默认路