java - 从 Jersey 的 URI 获取处理程序?

标签 java rest jersey

ContainerResponseFilter 中,我想获取“处理程序”,即 @Path@GET/@PUT - 注释方法匹配我将提供的 URL。

例子:

someJerseyVariable.getHandlerForURI(request.getRequestUri()); 

我找不到任何类似的方法。

我想要这个的原因是要统计每个处理程序处理的请求数以及成功/失败的请求数。也欢迎任何其他替代方案。

最佳答案

你可以注入(inject)UriInfoExtendedUriInfo . 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/

相关文章:

java - Facebook 签名的请求解码哈希似乎不完全匹配

java - GridView 重复一张图像

Java设置多线程处理

web-services - RESTful 设计 : Paging Collections

jersey - 初始化 Jersey 找不到资源?

java - Android 和 PC 上的谷歌地图上适当数量的标记

JAVA修改String格式的日期

java - ActiveResource 的基本假设端点是什么?

java - 如何将 Jersey REST 服务的 JSON 响应反序列化为 Java 对象集合

api - REST 会破坏数据封装吗?