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

SpringBoot端点部署至Tomcat后无法访问问题排查

Spring Boot WAR包部署Tomcat端点无法访问问题排查

1. 修正Tomcat依赖作用域

部署到外部Tomcat时,spring-boot-starter-tomcat依赖会与Tomcat自带的Servlet容器类冲突,必须将其作用域改为providedRuntime,避免打包进WAR包:

修改build.gradle的依赖配置:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    // 将tomcat依赖设为providedRuntime,仅编译时使用,不打包
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    // 其他业务依赖...
}

2. 确认上下文路径正确性

你访问的路径中user-service-api-0.0.1-SNAPSHOT-plain是WAR包文件名对应的默认上下文路径,需注意:

  • 检查Tomcat的webapps目录,WAR包解压后的文件夹名就是当前应用的上下文路径,确保访问路径中的上下文部分与之一致
  • 若需自定义上下文路径,在src/main/resources/application.properties中添加配置:
    server.servlet.context-path=/user-service-api
    
    此时访问路径变为http://localhost:8080/user-service-api/api/v1/users

3. 验证ServletInitializer配置

确保ServletInitializer的configure方法正确指向Spring Boot主类:

  • 确认主类UserServiceApiApplication的包路径与ServletInitializer中指定的一致,若主类不在同包,需写出全限定类名:
    return application.sources(net.bean.userserviceapi.UserServiceApiApplication.class);
    

4. 查看Tomcat日志定位异常

若以上配置都正确,查看Tomcat的logs/catalina.out或localhost.log日志,里面会记录应用初始化失败的具体原因(如类冲突、Bean加载错误等),根据日志信息进一步排查。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:31:03