我已经与Glassfish / Jackson合作了一年多,在引入新的端点实现时总是遇到这个问题:当未达到端点并且我想了解原因时,唯一我必须继续的提示是返回的请求,因为执行没有到达所需的端点或资源(路由/映射错误)。
我想通过“原始”请求在到达端点/资源之前拦截Jersey映射/路由执行,以便我可以更好地理解资源/端点映射和路由问题。
答案 0 :(得分:1)
@xeye提交给另一个 问题,为我解决了这个问题:
创建一个实现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);
// ...
}