从泽西岛的 URI 获取处理程序?

2023-11-30

里面一个ContainerResponseFilter我想得到“处理程序”,即所在的班级@Path@GET/@PUT- 带注释的方法与我将提供的 URL 匹配。

Example:

someJerseyVariable.getHandlerForURI(request.getRequestUri()); 

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

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


你可以注射UriInfo or ExtendedUriInfo. UriInfo仅包含最后一个匹配的类,ExtendedUriInfo甚至可以报告匹配的方法(以及更多信息,请参阅链接的 javadocs)。

代码示例:

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;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从泽西岛的 URI 获取处理程序? 的相关文章

随机推荐