我们在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
如果您将其用作Filter,则需要告诉Jersey不要处理这些请求。例如,通过将Jersey资源放在单独的路径下,例如“ / api / *”或类似的内容:
Filter
@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外部配置中设置的位置(否则,您必须枚举正则表达式中的所有端点)。
management.contextPath=/admin
您还可以告诉Jersey忽略未解决的请求(而不是发送404)。这也可以实现您的目标,但可能会影响您的客户端应用程序(如果它们依赖于404行为)。