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

Spring Boot 2 Rest Api Example

Spring Boot - 模拟对外部 API 的 POST REST 请求