Debian Tomcat 日志警告处理指南
一 定位与查看日志
二 常见警告与处理清单
| 警告现象 | 常见原因 | 处理要点 |
|---|---|---|
| Address already in use(端口被占用) | 其他进程占用 8080/8005 等端口 | 用 lsof -i :8080 查占用进程并释放或 kill;必要时在 server.xml 调整端口 |
| Error starting static Resources / Context startup failed | server.xml、context.xml 配置错误或资源缺失 | 校验 XML 语法与路径,确保引用的文件/目录存在 |
| OutOfMemoryError | 堆内存不足或泄漏 | 调整 -Xms/-Xmx,分析 GC 与对象生命周期,排查内存泄漏 |
| FileNotFoundException(如 catalina.out 无法写入) | 权限不足或日志文件被占用/锁定 | 校正目录与文件权限,确保 tomcat 用户可写,释放被占用句柄 |
| error instantiating ‘org.apache.juli.ClassLoaderLogManager’ | JAVA_HOME 或 JRE_HOME 配置不当 | 确认 JDK 安装与环境变量指向有效 JDK |
| Permission denied | 目录/文件访问受限 | 修正目录属主与权限(如 tomcat:adm),避免以 root 运行应用 |
| The BASEDIR environment variable is not defined correctly | CATALINA_HOME/BASEDIR 未正确设置 | 在启动脚本或环境配置中正确设置 CATALINA_HOME |
| WARNING: … threw exception(如 NPE/IllegalArgumentException) | 应用代码缺陷 | 依据堆栈定位到具体类与方法,修复空指针/参数校验等问题 |
| Exception processing sessions: java.io.IOException: Stream closed | 客户端异常断开或网络不稳 | 通常可忽略;若频繁出现,检查网络与客户端行为 |
| The bind() method failed, reason: Address already in use | 端口绑定失败(同端口冲突) | 同“端口被占用”处理 |
| StandardWrapperValve.invoke … threw exception | 业务 Servlet 抛异常 | 结合应用日志修复业务逻辑与异常处理 |
| MBean 注册提示 | Tomcat 启动注册监控 MBean | 正常信息,无需处理 |
| CoyoteAdapter.postProcess Request processed | 请求后处理钩子日志 | 正常信息,无需处理 |
三 安全相关警告处理
四 日志轮转与长期治理
五 快速排查命令清单