导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:346
阅读量:1541746
访问量:181648
至今:
×
云标签 标签球>>
云标签 - Su的技术博客
博文->>首页 博主的更多博文>>
tomcat应用服务启不来,没有报错日志?不可能!
Tags : Tomcat,日志发表时间: 2021-08-02 20:28:32
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
比如: 转自:Su的技术博客  原文地址:

遇到了一个奇怪的问题,使用tomcat启动项目,从标准输出日志看,似乎很正常,但是

访问却失败了!


如下图:


......(省略N多日志)

Jun 04, 2018 12:42:27 PM org.apache.catalina.startup.HostConfig deployWAR

INFO: Deployment of web application archive 

/usr/local/tomcat/xxxxx/webapps/XXXX-api.war has finished in 13,552 msJun 

04, 2018 12:42:27 PM org.apache.coyote.AbstractProtocol startINFO: Starting 

ProtocolHandler ["http-bio-9311"]Jun 04, 2018 12:42:27 PM

org.apache.coyote.AbstractProtocol startINFO: Starting ProtocolHandler 

["ajp-bio-9312"]Jun 04, 2018 12:42:27 PM org.apache.catalina.startup.Catalina 

startINFO: Server startup in 29408 ms


Tomcat catalina日志看下起来似乎正常,启动耗时约22秒,因为这里好像没看到异常

堆栈等信息的打印出来。所以理所应当的认为我的服务已经正常启动了,是不是其它网络情况

造成服务不可用或者404跳转等问题呢?


但是,访问时服务却是一直不通,甚至出现404。


1、查看catalina日志



细看关键日志:

SEVERE: One or more listeners failed to start. Full details will be found in the

appropriate container log fileJun 04, 2018 12:32:47 PM

org.apache.catalina.core.StandardContext startInternalSEVERE: Context 

[/XXXX-api] startup failed due to previous errors


关键就是这两行severe严重级别的日志。在控制台看到的都是没标颜色的,所以一开始

可能觉得没问题。


这两行日志我们可以看出来,有Listener启动失败了,在适当的容器日志文件中可以

找到完整的详细信息。而且也可以看到由于前面的这些错误,启动是失败的



2、异常日志在哪里?

那么在Catalina日志里面为啥没能看到异常堆栈呢?


看下面这段引用:

catalina.out即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里

包含tomcat运行自己输出的日志以及应用里向console输出的日志。catalina.{yyyy-MM-

dd}.log是tomcat自己运行的一些日志,这些日志还会输出到catalina.out,但是应用向

console输出的日志不会输出到catalina.{yyyy-MM-dd}.log。localhost.{yyyy-MM-

dd}.log主要是应用初始化(listener, filter, servlet)未处理的异常最后被tomcat捕获而输出

的日志,而这些未处理异常最终会导致应用无法启动。

  

 所以,你就知道什么原因了吧。


localhost.{yyyy-MM-dd}.log主要是应用初始化(listener, filter, servlet)未处理

的异常,最终被tomcat捕获而输出的日志。


根据Catalina日志上的severe日志所说的,有listener启动失败,那么详细的日志信息就

是在这个日志文件里面了:localhost.log

 


从日志得知:

  SEVERE: Exception sending context initialized event to listener instance of class com.XXXXXX.web.servlet.WsContextLoaderListener


看到这串异常堆栈信息,是不是很兴奋!  这样你就会知道什么原因了吧。赶紧解决掉~


3、总结

1)应用服务启不来,比如:tomcat容器部署的服务,甚至其他服务组件等,一般都会有

日志提示你,所以要细心和耐心,可能就记录在其它地方了。


2)Tomcat部署项目时应用初始化(listener, filter, servlet)出现异常一般都会记录到

这个日志localhost.log。

2018记


ps:虽然是一个小问题,但是在工作中却经常遇到,也有不少同事不知道怎么回事,特此记录,让我们少掉进一些坑。




回复公众号【资料】获得干货资料集锦:技术ppt、IT大会资料、架构、分布式资料等。
相关文章
1】线上热更新代码只需3步 Arthas实战 | 原创
2】实战使用Arthas排查生产问题:实例方法接口调用
3】实战:一次疑似内存泄漏的问题排查
打赏
打赏
关注公众号
公众号
类别:线上问题| 阅读(208)| 赞 (0)
上一篇 : StarUML破解方法,支持2.X、3.X、4.X,仅供
下一篇: 升级需谨慎,开发两行泪!——记一次MySQL驱动包升级引
评论
暂无评论!
发表评论
昵  称:

验证码:

内  容:

    同时赞一个 赞