在 ContainerResponseFilter
中,我想获取“处理程序”,即 @Path
和 @GET
/@PUT
- 注释方法匹配我将提供的 URL。
例子:
someJerseyVariable.getHandlerForURI(request.getRequestUri());
我找不到任何类似的方法。
我想要这个的原因是要统计每个处理程序处理的请求数以及成功/失败的请求数。也欢迎任何其他替代方案。
最佳答案
你可以注入(inject)UriInfo
或 ExtendedUriInfo
. UriInfo
仅包含最后匹配的类,ExtendedUriInfo
甚至可以报告匹配的方法(以及更多信息,请参阅链接的 javadoc)。
代码示例:
public class Filter implements ContainerResponseFilter {
@Context UriInfo uriInfo;
@Context ExtendedUriInfo extendedUriInfo;
@Override
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
System.out.println(uriInfo.getMatchedResources().get(0).getClass());
System.out.println(extendedUriInfo.getMatchedMethod().toString());
return response;
}
}
关于java - 从 Jersey 的 URI 获取处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402288/