近期刚刚接触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。详细步骤为计算机->属性->环境变量,然后加入系统变量:如图所看到的

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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


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

  1. 【问题解决】Tomcat 启动时闪退或提示“Neither the JAVA_HOME or the JRE_HOME environmental variable is defined.”

    问题解决思路: 1.分析startup.bat启动脚本:发现其调用了catalina.bat,而catalina.bat调用了setclasspath.bat 2.在setclasspath.bat的 ...

  2. (转)Tomcat 启动后 “闪退”

    缘由 今天在一台新机器上部署开发环境,安装完Tomcat以后,运行startup.bat后出现“闪退”...在网上找到了解决方案,条理清晰且分析的很详尽.记录如下: 首先贴出原文链接: http:// ...

  3. Tomcat启动失败闪退

    最近把电脑系统从win8升到了8.1(之前源于各种原因都没升外带升级失败),用都用了1个月了,突然发现tomcat启动不了,提示找不到什么什么- -,因为平时基本都是从开发工具里运行的服务器,都没有问 ...

  4. iOS 启动连续闪退保护方案

    引言 “如果某个实体表现出以下任何一种特性,它就具备自主性:自我修复.自我保护.自我维护.对目标的自我控制.自我改进.” —— 凯文·凯利 iOS App 有时可能遇到启动必 crash 的绝境:每次 ...

  5. mac osx 启动wireshark闪退

    wireshark启动会提示安装x11 去x11地址安装后 启动还是闪退 原来是姿势不对 这样才行~~ 这一步 这个路径一定要对!路径一定要对!路径一定要对! 然后报错不用管它,如果没反应了,就继续等 ...

  6. 全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解)

    不多说,直接上干货!  问题详情 点击 出现Anaconda-Navigator启动后闪退的现象. 或者 装过一次anaconda,貌似按了一个更新的键就打不开了.navigator这个打不开,会停留 ...

  7. 企业版证书打包APP发布,安装后闪退问题解决。

    企业版证书打包APP发布,安装后闪退问题解决. 我现在就碰到这个问题,只要项目与Swift沾上边的,都会出问题. 如果我们是直接使用开发者证书进行真机调试,那么就不会出现问题,像往常一样好.但如果我们 ...

  8. android app启动就闪退怎么办?

    开发过程中,如遇到android app启动就闪退,不要急,直接进入调试模式运行app,就会取得出错的原因. http://blog.sina.com.cn/s/blog_44fa172f0102wg ...

  9. MongoDB mongo.exe启动及闪退解决 转载

    转载自:http://blog.csdn.net/wyx_wx/article/details/76108662 启动: 进入MongoDB安装目录下的bin目录,启动mongod.exe 出现如图所 ...

随机推荐

  1. go的指针学习

    1)指针是什么? 一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址 说白了就是可以先存储内存的地址,在用内存地址找到对应值 2)go中的使用 Go 语言的取地址符是 &,放到一个 ...

  2. 笔试算法题(39):Trie树(Trie Tree or Prefix Tree)

    议题:TRIE树 (Trie Tree or Prefix Tree): 分析: 又称字典树或者前缀树,一种用于快速检索的多叉树结构:英文字母的Trie树为26叉树,数字的Trie树为10叉树:All ...

  3. Linux修改启动界面、分辨率

    初识Linux 初识Linux(Centos 7.x),积累一些小技巧. 修改命令行界面的分辨率 # 备份配置文件 # 有些系统路径是/boot/grub...或者/boot/grub/menu.ls ...

  4. [Python3网络爬虫开发实战] 6.2-Ajax分析方法

    这里还以前面的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化,那么应该到哪里去查看这些Ajax请求呢? 1. 查看请求 这里还需要借助浏览器的开发者工具,下面以Chrome浏 ...

  5. Linux中搭建FTP服务器

    FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 2 ...

  6. Sax解析xml文档

    测试的xml数据: <?xml version="1.0" encoding="utf-8" ?> <note> <to>G ...

  7. pycharm中提交Git 忽略部分代码

    痛点: 项目中,有些配置项,或者比较隐私的东东,不想上传 解决:在项目根路径下,创建.gitignore 文件     文件中可以写文件名.文件路径等 结果: 提交到git,发现果真没有dbconne ...

  8. C++解决大数组问题

    今天写一个C++小程序,竟然出现:"VS 未经处理的异常: 0xC00000FD: Stack overflow" 查了一下,普通数组变量是在堆栈中保存的,而堆栈空间有限,故出此错 ...

  9. UVA 1596 Bug Hunt (大模拟 栈)

    题意: 输入并模拟执行一段程序,输出第一个bug所在的行. 每行程序有两种可能: 数组定义: 格式为arr[size]. 例如a[10]或者b[5],可用下标分别是0-9和0-4.定义之后所有元素均为 ...

  10. Eclipse Myeclipse 设定文件的默认打开方式

    Eclipse Myeclipse 设定文件的默认打开方式   菜单:Window -> Preferences -> General -> Editors -> File A ...