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中的配置,如下图,可能配置死的内容就在这个文件里。

原文地址:https://www.cnblogs.com/guanzhyan/p/8301965.html

时间: 2024-12-15 19:36:58

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案的相关文章

idea将web项目打成war包放在tomcat/webapps上运行

1.进入Project Structure 或者 file -> Project Structure 或者 快捷键ctrl+alt+shift+s 2.选中Artifacts 3.点加号,然后如图 4.war包的默认输出路径 5.点击+号 -> 选择Directory -> 选择web项目根路径 6.在/WEB-INF/classes目录下, 生成编译后的class文件 7.点击ok 8.点击[Build]->[BuildArtifacts]->[Build]菜单, 找到自己

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

Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.properties涉及Mysql配置: 错误很明显,与MySQL密码有关,但是两种方式部署项目使用的jdbc.properties配置文件是一样的.所以肯定不是密码不对引起的,只好找度娘,O(∩_∩)O哈哈~. 网上大部分帖通过运行mysql -u root -p命令登录时也会报这个错误,所以,我就尝试这种方

将web项目打成war包部署在tomcat步骤

1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/conf目录下打开server.xml文件,找到Host节点,在Host节点下添加: <Context docBase="D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\Products.war" path="/Products" relo

idea把java web项目打成war包

地址链接:https://blog.csdn.net/weixin_30399055/article/details/94990015 1.新建artifacts 2.设置你的目录内容路径 3.找到项目web或webapp的路径 4.可以直接添加已经跑通的项目 5.配置完成点OK 6.编译打成war包 7.点击编译结束打完收工 8.找到你的输出位置就可看见war包了 原文地址:https://www.cnblogs.com/hcklqy/p/12048301.html

异常类型:Myeclipse10将web项目打成war包时出现security alert:integrity check error

是在对MyEclipse中的web项目打包的时候出现这个异常类型的,点击下边图片的 WAR file(MyEclipse)就会弹出一个警告框然后会MyEclipse就自动关闭了. E security alert:integrity check error this product did not pass the myeclipse integrity check. this security check is a prerequisite for launch of myeclipse. p

关于传统项目打成war包的的分析

技术在不断的革新,以前的项目没有jar管理工具时,都是手动将依赖的jar拷贝到项目之下,然后Build Path,之后Maven出现了,出现了jar包中央仓库,所有的jar包资源集中在这里,免去频繁去网络上查找jar包的麻烦.Maven采用坐标对一个jar进行定位,使每个jar包在中央仓库中有唯一标识.后面出现的Gradle,原理和Maven类似,且有更多的新特性. 说回传统项目,通过Eclipse创建一个动态web项目(Dynamic Web Project),其目录结构如下: │ .clas

手动给帮助类打 jar包 和 给Web项目打 war包

正确配置完Java JDK之后,就可以直接调用jar命令了,或者也可以进入jdk的bin目录下运行jar.exe命令 1. 把已经写好的帮助类打成 jar 包    (1)  打开进入 dos 命令提示窗口,直接 输入 jar 后 会出现 如下 所示的帮助命令:     其中( -c.-v.-f  )这三个命令很常用: -c 创建新的文档 -v 生成详细输出到标准输出上 -f 指定存档文件名. Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Micro

将web应用打成war包发布到服务器

如何将web应用打成war应用发布到服务器步骤: (1)先有一web应用"google"在C:盘下,如图: google下目录有WEB-INF文件夹(下有classes.lib.web.xml)和google.html文件 (2)进入C:目录,执行"jar -cvf  goo.war google" (3)然后将生成的goo.jar包放入C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps下 (

关于tomcat下startup.bat双击闪退的问题

背景:之前做单点登录,复制了几个tomcat,改了各自端口,当做不同服务器用. 今天无意间随便点击了一个tomcat下的startup.bat批处理文件,结果出来控制台,没出几行信息就闪退了.点击其他几个tomcat的startup.bat,也一样的结果,顿时感觉莫名其妙,之前都用得好好的啊,其中一个还集成在eclipse里面的啊. 英语菜鸡,百度一下,大部分都说是java与tomcat环境变量配置的问题: 比如这样: 还比如这样: 我去,JAVA环境变量没配好的原因自己挨板子去,你们竟然提出要