即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~

将打好的war包拷贝到Tomcat的webapps目录,然后在Tomcat的bin目录找到startup.bat批处理文件,直接双击执行,结果运行几秒后直接闪退,顿时有种不好的预感,在浏览器访问web项目,结果连localhost:8080都无法访问,web项目未发布成功,一脸懵逼~

没有日志看不到为啥发布不成功额,想了想,可以稍微修改下startup.bat批处理文件,添加PAUSE,这样运行结束只有按任意键才会关掉窗口(调试成功,在去掉PAUSE)。

如果有错误信息,这时候会显示出来,可以再根据它的错误提示。

此时,发现显示了一些环境变量,是不是环境变量没有配置引起的报错呢,就去检查了下,发现没有配置JRE_HOME环境变量。配置后,发现还是闪退。

也不清楚时环境变量引起的还是什么原因,没辙了,只能再找度娘了。

经过查资料,关于Tomcat中startup.bat原理的相关内容,觉得很有帮助,摘取部分片段分享下,可能跟解决这个问题没关系,可略过~

startup.bat 解析

验证CATALINA_HOME 环境变量是否设置,如果没有设置则通过CATALINA_HOME/bin目录下查找catalina.bat文件来确定CATALINA_HOME环境变量是否有效,如果没有找到catalina.bat 则goto end,结束。

验证catalina.bat是否存在,如果不能存在则结束。

判断启动 startup.bat 是否有参数,如果有参数,如果有有则赋值给 CMD_LINE_ARGS变量。 
通过call执行catalina.bat ,并传入参数。

其实startup.bat 的主要作用就是帮你找到catalina.bat并执行它。

好处:

如果你配置CATALINA_HOME的环境变量了,就可以把startup.bat 放到任何目录下,都可以启动tomcat了。

好了,根据对startup.bat文件的解析,发现现在的问题跟环境变量没关系。瞬间有点失落。经验告诉我,可以查看日志撒。发现日志存在错误日志额。

问题解决方法请参考:Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案

Tomcat其他问题总结:

问题一: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。

这样在每次运行startup.bat时就自动注册了JAVA_HOME,JRE_HOME。

问题二:Cannot find "D:\Program Files\apache-tomcat-7.0.52\bin\setclasspath.bat"

可能是CATALINA_HOME的值在某个地方被写死了,像我的绿色版tomcat在bin文件下多了一个setenv.bat的文件,打开一看果然是在这里面被写死了CATALINA_HOME的路径,这应该是为了某种原因被人后加上的设置文件,把这个文件删除之后,tomcat可以正常运行了。

这种情况,可以去看catalina.bat中的配置,如下图,可能配置死的内容就在这个文件里。

最新文章

  1. [翻译] ORMLite document -- How to Use Part (一)
  2. makefile--subst
  3. debug命令简介
  4. 深入理解javascript函数系列第一篇——函数概述
  5. NGUI ScrollView总结
  6. hudson安装
  7. andorid中Html.fromHtml方法
  8. U盘、移动硬盘提示格式化的处理
  9. [YZOJ1579]&&[BZOJ2450]arr
  10. 【HTML+CSS】浅谈:相对定位与绝对定位
  11. 算法之prim算法
  12. iOS 将NSArray、NSDictionary转换为JSON格式进行网络传输
  13. [安全]PHP能引起安全的函数
  14. [HNOI2008]Cards
  15. The content of elements must consist of well-formed character data or markup
  16. IE提示“Internet Explorer已限制此网页运行脚本或ActiveX控件”的解决办法
  17. python多线程之t.setDaemon(True) 和 t.join()
  18. oracle怎么给表和列加注释
  19. Python isspace() 方法检测字符串是否只由空格组成。
  20. java翻转字符串中的单词

热门文章

  1. 百度搜索URL参数含义
  2. 动态页面技术之JSP
  3. Web前端图形滑块检验组件实现
  4. K:大数加法
  5. 5.Resource注解解析
  6. Ubuntu16.04下安装MATLAB 2016b!完美运行
  7. jQuery bind()与delegate()的区别
  8. ES6学习笔记(七)-对象扩展
  9. <Android 应用 之路> MPAndroidChart~BubbleChart(气泡图) and RadarChart(雷达图)
  10. JavaScript : Array assignment creates reference not copy