gpt4 book ai didi

Spring Boot Jersey 和监控 URL

转载 作者:行者123 更新时间:2023-11-28 22:19:35 27 4
gpt4 key购买 nike

我们有一个带有 Jersey 的简单 Spring Boot 应用程序。

Spring Boot 提供了默认的监控端点

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-ready-monitoring

例子:

@Component
public class JerseyConfig extends ResourceConfig {

public JerseyConfig() {
// registering resources from rest package
packages("com.xyx.abc.rest");

}

}

Spring Boot 提供的 REST 端点在 Spring Boot Jersey 应用程序的上下文中不可用。

Spring Boot 依赖包括 Jersey、starter-actuator、starter-tomcat。

我们的 REST 资源显示正常,但是 Spring Boot 提供的用于监控的资源没有显示。

例如 http://abc.xyx.com:8080/health返回 404

最佳答案

如果您将它用作过滤器,您需要告诉 Jersey 不要处理这些请求。例如。通过将 Jersey 资源放在单独的路径下,例如“/api/*”或其他路径:

@Bean
public FilterRegistrationBean jersey() {
FilterRegistrationBean bean = new FilterRegistrationBean();
...
bean.setUrlPatterns(Lists.newArrayList("/api/*"));
return bean;
}

(来自 here )。

或者通过声明您的管理端点是“静态的”(通过另一个初始化参数“com.sun.jersey.config.property.WebPageContentRegex”):

@Bean
public FilterRegistrationBean jersey() {
FilterRegistrationBean bean = new FilterRegistrationBean();
...
bean.addInitParameter("com.sun.jersey.config.property.WebPageContentRegex",
"/admin/.*");
return bean;
}

我们在 Spring Boot 外部配置中设置了 management.contextPath=/admin(否则您必须在正则表达式中枚举所有端点)。

您还可以告诉 Jersey 忽略 Unresolved 请求(而不是发送 404)。这也可以实现您的目标,但可能会影响您的客户端应用程序(如果它们的行为依赖于 404)。

关于Spring Boot Jersey 和监控 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26941817/

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