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;
}
}
加载中,请稍侯......
精彩评论