Jersey 在到达端点/资源之前调试映射/路由执行
我已经与Glassfish/Jackson合作一年多了,在引入新的端点实现时,我总是遇到这个问题:当未到达端点时,我想了解为什么,我必须继续的唯一提示是返回的请求,因为执行未到达所需的端点或资源(路由/映射错误) 我想在到达端点/资源之前,用“原始”请求拦截Jersey映射/路由执行,以便更好地理解资源/端点映射和路由问题。对于另一个问题,通过,为我解决了此问题: 创建一个实现Jersey 在到达端点/资源之前调试映射/路由执行,jersey,glassfish,Jersey,Glassfish,我已经与Glassfish/Jackson合作一年多了,在引入新的端点实现时,我总是遇到这个问题:当未到达端点时,我想了解为什么,我必须继续的唯一提示是返回的请求,因为执行未到达所需的端点或资源(路由/映射错误) 我想在到达端点/资源之前,用“原始”请求拦截Jersey映射/路由执行,以便更好地理解资源/端点映射和路由问题。对于另一个问题,通过,为我解决了此问题: 创建一个实现ContainerRequestFilter的筛选器,并覆盖其filter方法。在这里,我们可以拦截所有请求进行调试 /
ContainerRequestFilter
的筛选器,并覆盖其filter
方法。在这里,我们可以拦截所有请求进行调试
// Executed whenever a request is sent to the API server.
// Useful for debugging errors that don't reach the desired endpoint implementation.
@Provider
@Priority(value = 0)
public class MyFilter implements ContainerRequestFilter {
@Context // request scoped proxy
private ResourceInfo resourceInfo;
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
try {
// put a breakpoint or log desired attributes of requestContext here.
} catch (Exception e) {
// ignore
}
}
}
然后在ConfigResource
实现中注册这个新类
public class MyResourceConfig extends ResourceConfig {
public MyResourceConfig(){
register(MyFilter.class);
// ...
}
()