Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案
即上篇通过将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中的配置,如下图,可能配置死的内容就在这个文件里。
Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案的更多相关文章
- idea将web项目打成war包放在tomcat/webapps上运行
1.进入Project Structure 或者 file -> Project Structure 或者 快捷键ctrl+alt+shift+s 2.选中Artifacts 3.点加号,然后如 ...
- 将web项目打成war包部署在tomcat步骤
将web项目打成war包部署在tomcat步骤 1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/con ...
- Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案
Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.proper ...
- 【转】将项目打成war包并用tomcat部署的方法,步骤及注意点
部署的遇到第一个问题,就是tomcat和jdk的环境问题: 首先 理解为啥要关注这二者的环境呢?他们还是有关系的–tomcat 作为比较流行的java Web服务器也是用java来实现的一个比较大的软 ...
- 将项目打成war包并用tomcat部署的方法,步骤及注意点
部署的遇到第一个问题,就是tomcat和jdk的环境问题: 首先 理解为啥要关注这二者的环境呢?他们还是有关系的–tomcat 作为比较流行的java Web服务器也是用java来实现的一个比较大的软 ...
- 如何使用idea把web项目打成war包
如果是maven项目,打成war包很容易,如果是web项目,需要这样子 1. 2. 3. output directory是war包的目录 4.重新选择 第一步的操作,选择build即可.
- idea把java web项目打成war包
1.新建artifacts 2.设置你的目录内容路径 3.找到项目web或webapp的路径 4.可以直接添加已经跑通的项目 5.配置完成点OK 6.编译打成war包 7.点击编译结束打完收工 8.找 ...
- IDEA将web项目打成war包
非Maven项目打包方式 按ctrl+滚动鼠标滚轮就能放大浏览器看图片了.或者将图片拖到新窗口打开. 然后点击OK,然后build一下.然后去classes文件夹下面找就能找到打成war包的项目 ...
- tomcat点击startup.bat出现闪退,启动不成功的解决办法
问题描述:tomcat点击startup.bat出现命令行闪退的情况 打开startup.bat,在第一行加入 SET JAVA_HOME=D:\jdk\jdk1.8.0_121[jdk路径] SET ...
随机推荐
- Knockout.js Style绑定
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- Hadoop源码学习笔记(5) ——回顾DataNode和NameNode的类结构
Hadoop源码学习笔记(5) ——回顾DataNode和NameNode的类结构 之前我们简要的看过了DataNode的main函数以及整个类的大至,现在结合前面我们研究的线程和RPC,则可以进一步 ...
- 五:SpringCloud-Zuul
九:zuul路由网关 1.概述 1.1 是什么 Zuul包含了对请求的路由和过滤两个最主要的功能: 其中==路由功能==负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础. 而==过 ...
- 一步一步实现web程序信息管理系统之二----后台框架实现跳转登陆页面
SpringBoot springboot的目的是为了简化spring应用的开发搭建以及开发过程.内部使用了特殊的处理,使得开发人员不需要进行额外繁锁的xml文件配置的编写,其内部包含很多模块的配置只 ...
- windows查看当前python的版本
1.Ctrl+R打开控制台 输入python之后回车
- C++ Knowledge series 1
Programming language evolves always along with Compiler's evolvement. 1. The C++ Object Model: Strou ...
- 插入外置网卡端口顺序混乱--linux系统
本文皆是作者工作学习中的理解或感悟,欢迎大家提出问题,一起讨论!! 一.问题提出 一般的主板上都带有两个网卡接口,linux系统启动后一般命名为eth0,eth1,当然如果我们不对eth0与eth1进 ...
- Vue小案例(一)
案例需求: 创建一个品牌展示表格,表头有编号(id),品牌名称(name),创建时间(time)和操作,需要实现的功能是对数据的增删操作,和时间的格式化. 思路分析:在开发之前需要想清楚要用到Vue中 ...
- Monkey测试运用实例
测试命令是多样性的,根据个人的测试思路,设计执行你想要的测试命令 1.monkey -p com.junte -v 1000 团贷网模拟用户随机操作,无延时点击1000次 -p测试包 ...
- .net core系列之《对AOP思想的理解及使用AspectCore实现自定义日志拦截》
对于AOP这个名词,相信对于搞过MVC开发的人来说,都很熟悉,里面各种各样的Filter简直是将AOP体现到了极致. 那么什么是AOP呢? AOP(Aspect Oriented Programmin ...