You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Tools 4+Java11+Tomcat9+Spring5应用正常运行但调试时无限挂起

解决Tomcat 9 + Spring 5调试无限挂起的配置方案

一、检查Tomcat调试端口与启动参数

  • 确认Tomcat调试端口未被占用:默认调试端口为8000,可通过netstat -ano | findstr :8000(Windows)或lsof -i :8000(Linux/macOS)检查占用情况。若被占用,修改端口步骤如下:
    1. 在Servers视图右键Tomcat服务器,选择Open进入配置界面
    2. 切换到Debug标签页,将Port改为未被占用的端口(例如8001)
  • 验证Tomcat调试启动参数:在Tomcat配置的Arguments标签页,VM参数需包含正确的调试配置,确保suspend=n(启动时不等待调试连接,直接运行):
    -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,suspend=n,server=y
    

二、调整Spring应用的调试相关配置

  • 关闭Spring懒加载:若开启懒加载,调试时可能因初始化延迟导致假挂起。通过XML或注解方式关闭:
    <!-- XML配置示例 -->
    <beans default-lazy-init="false">
      <!-- 应用Bean配置 -->
    </beans>
    
    // 注解配置示例
    @Configuration
    @Lazy(false)
    public class AppConfig {
      // 配置Bean
    }
    
  • 降低日志级别:过高的日志级别(如TRACE)会输出大量日志阻塞进程,调整log4j.properties或logback.xml:
    # log4j配置示例
    log4j.rootLogger=INFO, stdout
    

三、Tomcat与STS的关联配置检查

  • 修正Tomcat服务器位置:在Tomcat配置界面的General标签页,选择Use Tomcat installation,避免STS生成的临时元数据导致调试异常。
  • 清理部署文件:右键Tomcat服务器选择Clean,同时清理项目的target目录(Maven项目可执行mvn clean),再重新部署启动调试。

四、定位应用启动阻塞点

调试挂起时,通过STS的Debug视图定位阻塞代码:

  1. 打开Debug视图(Window -> Show View -> Debug)
  2. 点击工具栏的Pause按钮暂停进程
  3. 在Threads列表中查看main线程或Tomcat启动线程的调用栈,定位具体阻塞的初始化逻辑(如数据库连接、第三方服务调用)

内容的提问来源于stack exchange,提问作者headlikearock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 16:55:00