在 Debian 上调试 Tomcat,通常分为 启动问题、运行异常、性能问题、远程调试 等几类。下面按常见场景给你一套实用调试方法。
systemctl status tomcat
# 或
ps -ef | grep tomcat
如果未启动:
sudo systemctl start tomcat
Tomcat 对 Java 版本有要求:
java -version
常见对应:
/var/log/tomcat/
或(取决于安装方式):
/opt/tomcat/logs/
tail -f /var/log/tomcat/catalina.out
常见错误:
Address already in use → 端口被占用ClassNotFoundException → 包缺失OutOfMemoryError → 内存不足netstat -tulnp | grep 8080
或
ss -tulnp | grep 8080
修改端口:
/etc/tomcat/server.xml
<Connector port="8080" ... />
Tomcat 不能以 root 运行,但目录权限不对会失败:
sudo chown -R tomcat:tomcat /var/lib/tomcat
sudo chown -R tomcat:tomcat /var/log/tomcat
编辑:
/etc/default/tomcat
或启动脚本中增加:
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
启动:
catalina.sh jpda start
⚠️ 生产环境慎用,调试端口要加防火墙限制
ls /var/lib/tomcat/webapps
/var/log/tomcat/localhost.*.log
在 web.xml 中:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
/etc/default/tomcat
或
setenv.sh
示例:
JAVA_OPTS="-Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError"
jmap -dump:live,format=b,file=heap.hprof <pid>
分析工具:
journalctl -u tomcat -xe
✅ Java 版本是否正确
✅ 端口是否被占用
✅ 日志是否有异常
✅ 权限是否正确
✅ 应用是否部署成功
✅ 是否开启调试模式
如果你愿意,可以直接把 报错日志贴出来(尤其是 catalina.out 的异常栈),我可以帮你精确定位问题。