在ContainerResponseFilter
内部我想获得“处理程序”,即@Path
和@GET
/ @PUT
- 带注释的方法匹配我的网址的类提供。
示例:
someJerseyVariable.getHandlerForURI(request.getRequestUri());
我找不到任何类似的方法。
我想要这个的原因是,要统计每个处理程序服务的请求数以及成功/失败的数量。任何其他选择也是受欢迎的。
答案 0 :(得分:8)
您可以注入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;
}
}