Su的技术博客

  • 首页
  • Java
  • MySQL
  • DDD
  • 事故复盘
  • 架构方案
  • Other
  • 工具
  • 打赏
  • 关于
  1. 首页
  2. Java
  3. 正文
                           

【原创】tomcat应用服务启不来,没有报错日志?不可能!

2021-05-26 35点热度 0人点赞 0条评论












遇到了一个奇怪的问题,使用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】实战:一次疑似内存泄漏的问题排查
推荐好文
1、互联网Code Review最佳实践分享
2、dubbo面试题!会这些,说明你看懂了dubbo源码
3、Kafka面试题!掌握它才说明你真正懂Kafka
4、
Netty 5.0为啥被舍弃?原因竟然是...
5、
中台之上——业务架构系列【汇总】
6、必备瑞士军刀IDEA插件,你使用了哪些
7、线上热更新代码只需3步 Arthas实战
8、Eureka源码剖析之七:架构&面试题【总结】
9、互联网工程师应该用这种姿势打印日志

-关注搬运工来架构,与优秀的你一同进步-

如果喜欢这篇文章可以点在看哦↘

本文仅供学习!所有权归属原作者。侵删!文章来源: 搬运工来架构

标签: 原创 tomcat 日志
最后更新:2023-02-19

Cocodroid

专注Java后端,分享技术。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 推荐
最新 热点 推荐
殷浩详解DDD 第四讲:领域层设计规范 既生@Resource,何生@Autowired? Go整洁架构实践 接口优化的常见方案实战总结 QQ音乐高可用架构体系 构建一个布隆过滤器 —— Building a Bloom filter
殷浩详解DDD 第四讲:领域层设计规范Redis为什么这么快?构建一个布隆过滤器 —— Building a Bloom filterQQ音乐高可用架构体系接口优化的常见方案实战总结Go整洁架构实践
笔记 | Java对象探秘 Arthas实战-线上热更新代码只需3步 殷浩详解DDD系列 第二讲 - 应用架构 Eureka源码剖析之七:架构&面试题【总结】 订单超时怎么处理?我们用这种方案 笔记 | 面试官问我:TCP与UDP的区别

@Autowired (1) @Resource (1) API网关 (1) ddd (6) DP (1) ElasticSearch (1) eureka (7) go (1) HTTP (1) IDEA (1) iOS (1) Java (8) JSR (1) QQ音乐 (1) repository (1) Spring (1) SQL优化 (1) 代理 (1) 依赖注入 (1) 同城双活 (1) 垃圾回收 (1) 定时任务 (1) 容灾 (1) 布隆过滤器 (1) 异地双活 (1) 接口优化 (1) 故障转移 (1) 数据库 (2) 整洁架构 (1) 文件网关 (1) 方案 (2) 服务续约 (1) 注册中心 (7) 流水账 (1) 流量 (1) 第五 (1) 线上案例 (1) 线上问题 (2) 缓存 (1) 缓存击穿 (1) 编译 (3) 网络 (3) 聊聊 (1) 订单 (1) 设计规范 (1) 详解 (1) 连接池 (1) 限流 (1) 领域驱动设计 (4) 高可用 (1)

COPYRIGHT © 2014-2023 verysu.com . ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备15033072号-2