Tomcat无法解压Spring Boot应用问题求助
Spring Boot部署Tomcat无法加载/解压的排查方案
关键原因及解决办法
- 打包格式错误:Spring Boot默认打内置Tomcat的
jar包,Tomcat不会自动解压部署这种包。必须打war包:- Maven项目:在
pom.xml里设置<packaging>war</packaging>,同时将Spring Boot Tomcat依赖设为provided:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> - Gradle项目:启用
war插件,配置Tomcat依赖为providedRuntime。
- Maven项目:在
- Java与Tomcat版本不兼容:Tomcat 9.0.x仅支持Java 8到Java 11,你用的Java 17超出支持范围。要么降级Java到11及以下,要么升级Tomcat到10.x/10.1.x(支持Java 8-17)。
- war包损坏:传输过程中可能导致文件损坏,重新打包本地项目,校验本地与服务器war包的MD5值,或直接在本地Tomcat测试排除网络问题。
- 权限不足:Tomcat运行用户没有webapps目录或war包的读写权限。Linux下用
chmod调整权限,Windows下取消war包的只读属性。 - Tomcat自动部署关闭:检查
conf/server.xml的Host节点,确保autoDeploy="true"和deployOnStartup="true"未被手动关闭。
日志排查提示
重点查看Tomcat的catalina.out或localhost.log,解压失败通常会有IO异常、权限错误或war包格式错误的明确报错,根据日志定位具体问题。
内容的提问来源于stack exchange,提问作者Paulo Inácio
相关产品推荐
相关产品推荐

