gpt4 book ai didi

java - 如何使用 Spring Boot 在 jetty 嵌入式服务器中以编程方式启用和公开 jmx beans?

转载 作者:行者123 更新时间:2023-12-02 01:57:59 25 4
gpt4 key购买 nike

我正在使用一些 REST Controller 开发 Spring Boot 应用程序。我想添加 JMX 支持并公开一些 Jetty 的 mbean。

尝试连接 jconsole 但失败,所以我猜在这种情况下 JMX 默认被禁用。

问题是:如何在 Spring Boot 应用程序中启用 Jetty 的 JMX beans(使用 Jetty 作为嵌入式服务器)。

最佳答案

我明白了。我的解决方案部分基于此doc 。在 Spring Boot 中,可以通过添加自定义服务器定制器来向 Jetty 添加 JMX 支持。您需要做的就是添加这样的 bean:

@Bean
public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory(@Value("${server.port:8080}") final String port) {

JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory(Integer.valueOf(port));
factory.addServerCustomizers(server -> {
// Setup JMX
MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
server.addEventListener(mbContainer);
server.addBean(mbContainer);

server.addBean(Log.getLog());

});
return factory;
}

关于java - 如何使用 Spring Boot 在 jetty 嵌入式服务器中以编程方式启用和公开 jmx beans?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57389144/

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