Tomcat 日志报错没有万能解法,关键要看具体报错内容。不过我可以先给你一套通用排查思路 + 常见错误速查表,你可以对照着来;如果你愿意,把具体报错信息贴出来,我可以直接帮你定位。
Tomcat 日志一般在:
$TOMCAT_HOME/logs/
常见日志文件:
catalina.out ✅(最重要)localhost.logmanager.loghost-manager.logcatalina.YYYY-MM-DD.log✅ 90% 的问题都在 catalina.out
确认是不是本次启动 / 请求产生的错误。
❌ 不要只看最后一行
✅ 找 第一个 Exception / Error
例如:
Caused by: java.lang.NullPointerException
根因通常在第一个 Caused by
| 阶段 | 表现 |
|---|---|
| 启动阶段 | Tomcat 起不来 |
| 部署阶段 | WAR 无法加载 |
| 运行时 | 页面 404 / 500 |
报错示例:
Address already in use
java.net.BindException: Address already in use
解决:
# 查看端口占用
netstat -ano | grep 8080
# 或
lsof -i:8080
# 杀进程
kill -9 PID
或修改端口:
conf/server.xml
<Connector port="8080" />
报错示例:
Unsupported major.minor version 52.0
原因:
解决:
java -version
统一 JDK 版本 ✅
报错示例:
java.lang.OutOfMemoryError: Java heap space
解决:
修改 bin/catalina.sh:
export JAVA_OPTS="-Xms512m -Xmx1024m"
报错示例:
java.lang.ClassNotFoundException
java.lang.NoClassDefFoundError
解决:
webapps 下旧目录WEB-INF/lib 是否有重复 jar报错示例:
Context [] startup failed due to previous errors
解决:
解决:
-Dfile.encoding=UTF-8
你可以一条条对照:
你可以直接把以下内容发我:
例如:
Tomcat 9.0.65
JDK 1.8
报错:
java.lang.NullPointerException
at org.apache.catalina.startup...
我可以一步一步帮你分析 ✅