Spring Boot项目部署至Tomcat后无法访问,求解决方法
解决Spring Boot WAR包部署到Tomcat无法访问的问题
问题排查与修复步骤
1. 移除错误的依赖配置
你的pom.xml中错误地将spring-boot-maven-plugin作为依赖引入,该插件仅需在构建插件中配置,无需放在依赖列表里。删除这段无效依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.3.1</version> </dependency>
2. 修正主类路径配置
pom.xml里spring-boot-maven-plugin的mainClass配置路径错误,你的主类实际包路径是com.cicd.demo,但配置中写的是com.example.demo.DemoApplication,导致打包后无法识别启动类。修改为正确路径:
<configuration> <mainClass>com.cicd.demo.DemoApplication</mainClass> </configuration>
3. 确认Tomcat版本兼容性
Spring Boot 3.3.1基于Jakarta EE 10规范,必须使用Tomcat 10.1.x及以上版本。如果你的Tomcat是9.x或更低版本,会因API兼容问题(javax与jakarta包名差异)导致部署失败,请升级到符合要求的Tomcat版本。
4. 重新打包部署
完成上述修改后,执行Maven打包命令:
mvn clean package
将新生成的target/demo.war复制到Tomcat的webapps目录,重启Tomcat服务器,访问http://localhost:8080/demo/即可看到预期的Hello World内容。
额外检查建议
- 查看Tomcat的
logs/catalina.out日志,若仍有问题,日志中的类加载或启动异常信息能快速定位剩余问题。 - 主类继承
SpringBootServletInitializer的代码符合WAR包部署要求;Controller的/路径在WAR部署后会自动映射到/demo/,访问路径逻辑正确。
内容的提问来源于stack exchange,提问作者Angelina Rozario
相关产品推荐
相关产品推荐

