温馨提示×

如何调试Debian Tomcat

小樊
38
2026-08-05 08:35:48
栏目: 智能运维

Debian 上调试 Tomcat,通常分为 启动问题、运行异常、性能问题、远程调试 等几类。下面按常见场景给你一套实用调试方法。


一、确认 Tomcat 安装与运行环境

1. 查看 Tomcat 是否运行

systemctl status tomcat
# 或
ps -ef | grep tomcat

如果未启动:

sudo systemctl start tomcat

2. 查看 Java 版本

Tomcat 对 Java 版本有要求:

java -version

常见对应:

  • Tomcat 9 → Java 8 / 11
  • Tomcat 10 → Java 11+

二、查看 Tomcat 日志(最重要)

1. 主要日志路径

/var/log/tomcat/

或(取决于安装方式):

/opt/tomcat/logs/

2. 实时查看日志

tail -f /var/log/tomcat/catalina.out

常见错误:

  • Address already in use → 端口被占用
  • ClassNotFoundException → 包缺失
  • OutOfMemoryError → 内存不足

三、常见启动失败调试

1. 端口被占用

netstat -tulnp | grep 8080

ss -tulnp | grep 8080

修改端口:

/etc/tomcat/server.xml
<Connector port="8080" ... />

2. 权限问题

Tomcat 不能以 root 运行,但目录权限不对会失败:

sudo chown -R tomcat:tomcat /var/lib/tomcat
sudo chown -R tomcat:tomcat /var/log/tomcat

四、开启 Tomcat 调试模式(远程调试)

1. 启用 JPDA 远程调试

编辑:

/etc/default/tomcat

或启动脚本中增加:

export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket

启动:

catalina.sh jpda start

2. IDE 连接调试(以 IntelliJ IDEA 为例)

  • Run → Edit Configurations
  • 添加 Remote JVM Debug
  • Host: Debian 服务器 IP
  • Port: 8000

⚠️ 生产环境慎用,调试端口要加防火墙限制


五、调试 Web 应用(404 / 500 错误)

1. 检查应用是否部署成功

ls /var/lib/tomcat/webapps

2. 查看应用日志

/var/log/tomcat/localhost.*.log

3. 打开详细错误提示

web.xml 中:

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.jsp</location>
</error-page>

六、内存与性能调试

1. 查看内存配置

/etc/default/tomcat

setenv.sh

示例:

JAVA_OPTS="-Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError"

2. 生成内存快照

jmap -dump:live,format=b,file=heap.hprof <pid>

分析工具:

  • Eclipse MAT
  • VisualVM

七、使用 systemd 调试(Debian 常见)

查看详细启动失败原因

journalctl -u tomcat -xe

八、快速排查清单(推荐)

✅ Java 版本是否正确
✅ 端口是否被占用
✅ 日志是否有异常
✅ 权限是否正确
✅ 应用是否部署成功
✅ 是否开启调试模式


如果你愿意,可以直接把 报错日志贴出来(尤其是 catalina.out 的异常栈),我可以帮你精确定位问题。

0