项目地址:https://github.com/wenrongyao/springboot-demo.git
摘要:springboot项目打成war以后,项目可以正常启动,但是无法访问接口,报404,如果做了正确配置还有这个问题,那么很可能是开发设置的根路径和tomcat部署的项目名称不一致,而访问仍然以根路径访问所致。
首先确保你的项目做了打war的正确配置,参看https://blog.youkuaiyun.com/wrongyao/article/details/86301847
1、找到自己的项目配置文件,查看根路径配置

这边配置了根路径是/sbd,这个是在内嵌tomcat使用时生效的,所以在开发或打成jar包时访问
localhost:8080/sbd/hello 都可以得到正确的响应,但是打成war包时却不行
2、查看打包配置的包名
<build>
<!--包名,默认是${artifactId}-${version}-->
<finalName>springboot-demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这边打包的生成的包名设置成了springboot-demo
3、tomcat部署

tomcat部署时,并没有改名称,所以此时的根路径是springboot-demo而不是之前设置的sbd,意味着接口链接变成了
localhost:8080/springboot-demo/hello
4、建议打包的名称和开发设置的根路径保持一致,虽然二者并没有什么关联,但是为了方便,建议这么做。
<finalName>sbd</finalName>
本文解决SpringBoot项目打成WAR包后,在Tomcat部署时出现404错误的问题。关键在于检查项目根路径配置是否与打包名称一致。文章详细说明了配置检查步骤及建议。
1344

被折叠的 条评论
为什么被折叠?



