【问题标题】:spring-cloud how to use Endpointsspring-cloud 如何使用 Endpoints
【发布时间】:2017-12-12 12:18:06
【问题描述】:

management endpoints:

对于 Spring Boot Actuator 应用程序,还有一些额外的管理端点:

    POST to /env to update the Environment and rebind @ConfigurationProperties and log levels

http://localhost:8080/env/testprop 它工作并返回:

{
"testprop": "test value"
}

但是当我发帖时:http://localhost:8080/env/testprop 不支持请求方法“POST”

我想更新testprop,API怎么做?

【问题讨论】:

  • 您是否尝试过针对 /env 发布您向我们展示的 JSON?我不确定它是如何工作的,但如果我实施它,我将允许针对 /env 发布或针对 /env/$propertyName 进行放置
  • 是的,我试过了,但也许我做错了什么stackoverflow.com/questions/42962897/…
  • 我认为您所链接的问题中的错误是他针对 /management/env 而不是 /env 发布。如果针对 /env 发布对您不起作用,我需要一个重现此内容的最小示例,以便我可以快速查看它。
  • 当我在 localhost:8080/env 上调用 POST 时,我得到:不支持请求方法 'POST'
  • 有趣,您能否提供您的应用程序的最小示例?我想看看它:)

标签: java spring spring-mvc spring-boot spring-boot-actuator


【解决方案1】:

我在docs中找到了以下内容

对于 Spring Boot Actuator 应用程序,还有一些额外的管理端点:

  • POST 到 /env 以更新环境并重新绑定 @ConfigurationProperties 和日志级别

  • /refresh 用于重新加载引导上下文并刷新 @RefreshScope bean

  • /restart 用于关闭 ApplicationContext 并重新启动它(默认禁用)

  • /pause 和 /resume 用于调用 Lifecycle 方法(ApplicationContext 上的 stop() 和 start())

看来您必须再次发布 /env 而不是 /end/$yourProperty

【讨论】:

    【解决方案2】:

    好的,它有效: 必须以空体发布 http://localhost:8080/env/?test=dasda 响应是:

    {
        "test": "dasda"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-27
      • 2015-09-07
      • 2016-10-01
      • 2020-11-27
      • 2013-09-25
      • 2013-10-07
      • 1970-01-01
      • 2013-05-29
      相关资源
      最近更新 更多