记一次曲折的tomcat闪退处理过程

不建议看这篇文章,因为我觉得这问题出得有点奇葩,没人会遇到吧。。。

记一次曲折的tomcat闪退处理过程

先回顾一下如何查看tomcat版本号。首先打开cmd,进入D盘,然后改变盘到Tomcat安装目录bin文件夹下(一个星光熠熠的马赛克)

记一次曲折的tomcat闪退处理过程

然后输入version,可以看到当前版本号为7.0.78

记一次曲折的tomcat闪退处理过程

启动Tomcat:bin/startup.bat

查看是否启动成功: http://localhost:8080

哦豁,不幸失败,而且还没有错误提示。反复检查了环境变量,没有问题。

1.先看一下8080被占用没有,cmd输入netstat -ano|findstr "8080",发现没有8080,说明没有占用

2.不能让他一闪而过,得找找错误出在哪里。首先打开startup.bat文件,将最下面

call “%EXECUTABLE%” start %CMD_LINE_ARGS%

修改为

call “%EXECUTABLE%” run %CMD_LINE_ARGS%(最后成功了记得要改回去)

重新启动Tomcat(cmd中:bin/startup.bat),即可查看到出错信息。

记一次曲折的tomcat闪退处理过程

感觉不是太明白

3.有没有更详细的报错信息呢?有,查看Tomcat日志。在安装目录下log中,打开tomcat7-stdout.2020-XX-XX.log(找到当天的日期)。以下是错误摘抄:

找到错误信息1: Error creating bean with name 'helloAction': Unsatisfied dependency expressed through field 'dishserv'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [edu.cugb.xg.javaee.service.DishService]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

大意是创建名为“helloAction”的bean时出错:字段“dishserv”未满足依赖项;嵌套的异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:依赖项[edu.cugb.xg.javaee.service.DishService]找不到合适的bean:应至少有1个符合的bean。

哦 是以前挖的坑吗,这是我很久之前的项目 不记得了呀(无辜)。不想改了,反正已经不用了,索性删了webapp下项目源代码

然后在tomcat目录下找到conf (或者config) 目录找到server.xml文件。下图对应的这几个context对应的项目我刚刚删了源代码,所以该标签也删除,不然会报错“找不到”

记一次曲折的tomcat闪退处理过程

好,这下没有报该项目相关的错误了。但是还有Catalina启动失败的错误(看到这里,思想的骏马突然跑了,想起一个调调...lalala catalina~)

记一次曲折的tomcat闪退处理过程

4.这时!我看到log目录下还有catalina的专属日志文件,赶紧打开看看

错误摘抄:Error deploying web application directory D:\Tomcat\tomcat7\webapps\HTTPRPC

啊 意思是说我的项目“HTTPRPC”还没删除干净,赶紧各个目录看一看,删掉

5.成功!小猫你终于出现啦啊啊啊!

记一次曲折的tomcat闪退处理过程

参考:https://www.cnblogs.com/zhe-hello/p/9647799.html(此方法试了,我没成功启动)