gpt4 book ai didi

java - 如何使 spring boot 嵌入式 tomcat 为基本 url 返回 200 OK?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:06:07 24 4
gpt4 key购买 nike

我的应用部署在 http://123.87.65.23:8080。上下文路径是在application.properties中配置的/myapp。所以如果我访问 http://123.87.65.23:8080,我得到 404。但是如果我访问 http://123.87.65.23:8080/myapp/health,我按预期得到 200。

我们的运营团队监控 base url (http://123.87.65.23:8080) 是否为 200 OK。我有两个选择:

  1. 当我点击 http://123.87.65.23:8080 时返回 200 OK。无需回复。

  2. 或者以某种方式将请求 http://123.87.65.23:8080 代理到我的 http://123.87.65.23:8080/myapp/health Spring Boot 应用程序。

注意:我使用的是嵌入式 tomcat。所以更改 server.xml 的选项不适用

我不知道该怎么做。

最佳答案

如果您在 .properties 文件中设置 contextPath 属性,那么 Spring 会执行它应该执行的操作,所有内容 都会移动到那里。

如果您将应用程序打包为 .war 并在外部服务器中运行它,那么您可以设置该服务器以将根请求重定向到 Spring Boot 应用程序中的任何 URL。

如果您将应用程序打包为可运行的 .jar 并带有嵌入式服务器并且您希望将 contextPath 保留在 .properties 中然后

a) 你仍然需要某种外部服务器来捕获对 root 的请求并重定向到你的 Spring Boot 应用程序

b) 你需要设置两个不同的 DispatcherServlets 其中一个的 contextPath/myapp 而另一个是 / 将重定向到您的 Spring Boot 应用程序

但是,最简单的解决方案是删除 contextPath 并在每个 Controller 的 @RequestMapping 前面加上 /myapp,使用management.context-path 将所有management 端点移动到/myapp 并编写一个@Controller映射到重定向到健康端点的 / 的方法。

关于java - 如何使 spring boot 嵌入式 tomcat 为基本 url 返回 200 OK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39524507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com