开发者

Get handler from URI in Jersey?

Inside a ContainerResponseFilter I would like to get the "handler", i.e. the class where @Path and the @GET/@PUT-annotated method matches the URL I will provide.

Example:

someJerseyVariab开发者_高级运维le.getHandlerForURI(request.getRequestUri()); 

I can't find any similar method.

The reason I want this, is to have statistics for how many requests each handler served and how many succeeded/failed. Any other alternatives are also welcome.


You can inject UriInfo or ExtendedUriInfo. UriInfo contains only last matched class, ExtendedUriInfo can even report matched method (and much more info, see the linked javadocs).

Code sample:

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;
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜