Spring Boot Jersey和监视URL

我们在Jersey上有一个简单的Spring Boot" title="Spring Boot">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

回答:

如果您将其用作Filter,则需要告诉Jersey不要处理这些请求。例如,通过将Jersey资源放在单独的路径下,例如“ / api /

*”或类似的内容:

@Bean

public FilterRegistrationBean jersey() {

FilterRegistrationBean bean = new FilterRegistrationBean();

...

bean.setUrlPatterns(Lists.newArrayList("/api/*"));

return bean;

}

(从这里开始)。

或通过声明您的管理端点为“静态”(通过另一个初始化参数“

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;

}

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

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

以上是 Spring Boot Jersey和监视URL 的全部内容, 来源链接: utcz.com/qa/403589.html

回到顶部