记一次 启动tomcat后, 请求可以发送, 但不能正常接收请求
运行环境
- jdk1.8
- tomcat8
- nginx
问题现象
- nginx 正常启动, telnet nginx地址可以正常联通;
- tomcat正常启动, 日志正常打印, 定时器任务也正常执行;
- 外部访问 tomcat服务地址, 返回404; 内网访问tomcat服务地址, 依然报错
- 从nginx跳转, 依然报错;
- 访问nginx地址, 正常
错误排查
- nginx 访问成功, 跳转失败 --> 不是nginx问题
- tomcat 内网, 外网访问都失败 --> 确定tomcat问题
猜测
tomcat 启动时端口还在使用, 启动对应服务时, 端口结束占用, 服务启动成功 --> 本质上是假启动, 但 定时器业务依然可以正常执行
解决方案
在tomcat/conf/catalina.properties 文件中 添加
org.apache.catalina.startup.EXIT_ON_INIT_FAILURE=true
设置该项后, 能够检测tomcat在初始化时是否报错, 如果报错则立刻结束任务