部署在 Tomcat 上的 Spring Boot Rest API 提供 404 但独立工作一切正常

Posted

技术标签:

【中文标题】部署在 Tomcat 上的 Spring Boot Rest API 提供 404 但独立工作一切正常【英文标题】:Spring Boot Rest API Deployed on Tomcat gives 404 but works Stand-alone all fine 【发布时间】:2016-08-03 16:10:00 【问题描述】:

我已经使用带有嵌入式 Tomcat 的 MongoDB 开发 Spring Boot Rest API 大约一个月了,以构建 REST API。一切正常。我现在想在单独的开发环境中部署 API,以便任何人都可以访问 API。

我按照http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file中提到的步骤进行操作

    将包装改为war 将此添加到我为 spring-boot-starter-tomcat 提供的 pom.xml 中 将我的应用程序扩展到 SpringBootServletInitializer 并覆盖 配置方法。 我的 application.properties 有这个: spring.data.rest.base-path=/

完成所有这些之后: 我尝试访问 URL localhost:8080/my-war-name/employees 它给了我 404 错误,但是如果我像通过 main() 一样独立运行相同的应用程序或作为 Spring Boot 运行。我可以在 localhost:8080/employees 访问我的 API

我错过了什么吗?任何帮助将不胜感激。

【问题讨论】:

能否提供部署时tomcat的日志输出?您要部署到哪个 tomcat 版本? 您好,您能找到解决这个问题的方法吗? 【参考方案1】:

你试过 localhost:8080/employees 吗?

这取决于app-上下文路径,如果你想要localhost:8080/my-war-name/employees你可以添加

server.context-path=my-war-name 到 application.properties More on config

【讨论】:

是的,我确实尝试了 localhost:8080/employees 但它不起作用,还尝试将 server.context-path=my-war-name 添加到 application.properties 也没有帮助。

以上是关于部署在 Tomcat 上的 Spring Boot Rest API 提供 404 但独立工作一切正常的主要内容,如果未能解决你的问题,请参考以下文章

部署在 Tomcat 上的 Spring Boot Rest API 提供 404 但独立工作一切正常

Spring Boot框架开发的Java项目在CentOS7上的部署

Spring Boot 的 Keycloak 错误:tomcat 上的“不是子类型”

Tomcat 10 问题上的 Spring Boot 2.x

在tomcat上部署多个Spring Boot应用程序时如何指定logging.config

Spring Boot速览及在Azure上的部署