因为一个低级问题,导致tomcat启动卡住,耽误了很多时间来解决此问题。。所以在此记录一下,方便以后查找。

因为是突发性问题(即项目前几天还可以正常启动)所以排除首先掉java运行环境问题,因为看不到错误日志所以无法根据错误信息来排查问题,找了很久,网上也翻了很多资料...最终总结出以下重点,记录一下。。以后别在这上面浪费时间,此次问题出现在问题c+最后一个原因中...恶心的,要吐了! 以下正文:

1.tomcat卡住的原因有可能是以下几点:

a.项目中有连接第三方服务(例如redis,dubbo,数据库等),连接不上(ip、端口等问题)有可能导致tomcat一直在尝试连接,最后暴露出的现象为一直卡住不动

b.jar包依赖冲突

c.如果项目有mybatis组件,tomcat启动的时候会根据mybatis的配置文件,加载对应的的mapper.xml配置,mapper.xml配置的sql节点命名有问题(节点id重复命名)或是其他小问题也可能导致加载时一直卡住

d.开发工具、tomcat等缓存问题

e.项目加入了可能有问题的源目录

解决

a.检查各配置文件中(包含直接写在java类中的)的第三方连接是否正确,是否可正常连通

b.根据启动日志排查jar包依赖冲突问题

c.详细检查本次更新的mapper.xml是否存在问题

d.清理开发工具,tomcat缓存(注意进入tomcat部署路径,详细查看项目是否有编译到)

e.右键项目properties,点击deployment Assembly,查看项目的部署路径及要加载的目录是否存在问题

2.无日志的原因

log4j配置有问题导致日志无法正常输出;查看日志配置,并且把日志级别改为debug

最后!最讨厌的猫是什么,答:tomcat!!

其实tomcat还挺好用的啦,轻量级小型服务器,开发测试的不二之选。我只是吐吐槽前人搭建的项目架构!log4j这种基础组件都不先配好!

最最最后,分享一个最诡异的原因

Linux服务器的数据库配置文件编码问题!也可能导致服务启动的时候读取配置读取有问题,就一直卡在那!

解决方案就是从其他项目考一个能用的配置文件,并且直接用命令修改配置文件的配置,不要用ftp把文件拿到本地window环境更改配置后再上传到Linux服务器项目中

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: