在外部 Tomcat 服务器上运行的 Springboot 在除 index.html 之外的所有内容上都会出现错误 404

Posted

技术标签:

【中文标题】在外部 Tomcat 服务器上运行的 Springboot 在除 index.html 之外的所有内容上都会出现错误 404【英文标题】:Springboot running on external Tomcat server gives error 404 on everything but index.html 【发布时间】:2020-10-19 01:51:48 【问题描述】:

我基本上已将问题确定为我正在运行的外部远程 tomcat 服务器有问题:应用程序的任何路径都将成为索引 (10.0.0.222:8080/demo-0.0.1-SNAPSHOT ) 有效,但超过此 (10.0.0.222:8080/demo-0.0.1-SNAPSHOT/home) 会导致错误 404。此路径在使用嵌入式 tomcat 服务器运行以及在我的 localhost 机器上运行外部 tomcat 服务器时有效,因此我很确定问题出在我的远程 tomcat 服务器上。我不知道是什么原因造成的,所以我很感激任何帮助,如果我可以提供更多信息/文件,请告诉我。

我的 spring boot 项目有这个问题,在使用嵌入式 tomcat 服务器时应用程序运行良好,但是当我将项目编译并打包为 war 以便将其部署在我的外部 tomcat 服务器上时,我无法向其发送请求,并且 main 方法中的代码无法运行 https://github.com/louisspaghetti/demo

一些注意事项: 将其部署到外部tomcat/在tomcat上启动时没有错误。

当使用嵌入式 tomcat 运行时,我可以向 localhost:8080/home 发送请求,但对 10.0.0.222:8080/demo-0.0.1-SNAPSHOT/home 的请求(访问外部 tomcat)会导致错误 404。

我在 tomcat 服务器上有另一个项目,我使用原始 java servlet 制作,它运行良好,所以我认为这不是我的 tomcat 配置的问题,但我想它可能是......

编辑:我为“/”添加了另一个映射以返回 index.html,并且该映射有效,但“/home”(或 10.0.0.222:8080/demo-0.0.1-SNAPSHOT/home)仍然不起作用

编辑 2:该应用程序在我最近在本地主机上创建的 tomcat 服务器上运行时使用 /home 路径。我之前在远程 tomcat 服务器上工作的另一个应用程序现在只能与 index.html 一起工作,这也让我相信这一定是服务器的问题?有谁知道我必须做些什么来解决这个问题?

修复:使用 Tomcat 9 而不是 10

【问题讨论】:

【参考方案1】:

我找到了解决方法:使用 tomcat 9 而不是 10

【讨论】:

以上是关于在外部 Tomcat 服务器上运行的 Springboot 在除 index.html 之外的所有内容上都会出现错误 404的主要内容,如果未能解决你的问题,请参考以下文章

尝试在外部在tomcat 9上运行带有rest控制器的spring boot war文件

在外部 tomcat 中定义 Spring Boot 应用程序的上下文路径

无法在外部 tomcat 上部署 Spring Boot 应用程序

Tomcat 服务器无法“在外部”工作

在外部 Tomcat 服务器上运行的 Springboot 在除 index.html 之外的所有内容上都会出现错误 404

如何在外部 tomcat 中部署 Spring-boot REST API