我们有一个简单的Spring Boot应用程序 .
Spring Boot提供默认监控 endpoints
例:
@Component
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
// registering resources from rest package
packages("com.xyx.abc.rest");
}
}
Spring Boot提供的REST endpoints 在Spring Boot Jersey应用程序的上下文中不可用 .
Spring Boot依赖包括Jersey,starter-actuator,starter-tomcat .
我们的REST资源显示得很好,但Spring Boot提供的用于监控的资源不会显示出来 .
例如,http://abc.xyx.com:8080/health返回404
1 回答
如果您将其用作
Filter
,则需要告诉Jersey不要处理这些请求 . 例如 . 将Jersey资源放在一个单独的路径下,如"/api/*"或其他:(来自here) .
或者通过声明您的管理 endpoints 是“静态”(通过另一个init参数“com.sun.jersey.config.property.WebPageContentRegex”):
我们在Spring Boot外部配置中设置了
management.contextPath=/admin
(否则你必须枚举正则表达式中的所有 endpoints ) .您还可以告诉Jersey忽略未解决的请求(而不是发送404) . 这也可以实现您的目标,但可能会影响您的客户端应用程序(如果他们的行为依赖于404) .