Spring Boot REST API war 文件生成 404 错误
Posted
技术标签:
【中文标题】Spring Boot REST API war 文件生成 404 错误【英文标题】:Spring Boot REST API war file generating 404 error 【发布时间】:2021-05-14 04:14:13 【问题描述】:我有一个使用 Spring Boot 开发的 REST API。
如果我从 IDE 运行它,它工作正常。
例如,以下 url 返回正确的 json。
http://localhost:8080/xyz
现在我想部署应用程序。
生成一个war文件并在本地部署到:
C:\apache-tomcat-9.0.43\webapps
关闭 IDE。
然后启动Tomcat,再次访问如下url。
http://localhost:8080/xyz
我收到 HTTP 404 错误。
可能是什么原因?
Tomcat 正在正确启动。
http://localhost:8080 正确打开tomcat主页。
它也在 \webapps 下正确生成了 app 文件夹。
【问题讨论】:
404
多为目标文件路径不正确,请检查路径是否正确
查看这个:***.com/questions/39567434/…enter link description here
用ROOT.war重命名war文件
@Deviprasad Sharma 我正在使用与从 IDE 运行应用程序时相同的路径访问它(localhost:8080/xyz).So 路径可能有什么问题?不应该是一样的吗?
@Alien 尝试重命名为 ROOT.war。没用。同样的 404 错误。
【参考方案1】:
当您使用您的 Ide 运行时,它只运行 Enbibed tomcat,它只运行您的应用程序,这就是为什么您不需要该 war 文件名作为根路径的原因。但是当运行你的应用程序极端 tomcat 时,它需要使用 War File name 作为应用程序的根目录,因为这里的根目录是运行不同 War 的 tomcat 容器,每个 War 根路径都有其文件名。这就是为什么在你的路径之前需要
http://localhost:8080/
/xyz
【讨论】:
【参考方案2】:部署您的war文件后,将生成一个与war文件同名的文件夹。
所以 URL 将是http://localhost:8080/<war_file_name>/xyz
【讨论】:
正确。现在它起作用了。这就是问题所在。刚刚检查了答案是否已接受。谢谢。 @jkfe We l c o me.以上是关于Spring Boot REST API war 文件生成 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Spring Boot Rest 服务和 Angular App 捆绑在一个 war 文件中
尝试在外部在tomcat 9上运行带有rest控制器的spring boot war文件
Spring Boot War 文件部署在 Tomcat 上
Spring boot 打包为war包报错:提示缺少web.xml