RestEasy
提供了一个PreProcessInterceptor
使用,您可以拦截对您的网络服务的传入请求,然后您可以检查诸如响应该请求将调用哪个方法之类的事情,因此您可以决定让它通过或返回响应。
我正在使用 jersey 开发 Web 服务,在 jersey中是否有任何类似的类或东西可以用来拦截传入的请求并检查详细信息?
目前我正在使用 aFilter
来捕获请求并做一些事情,但我想要一个更好的方法。
检查以下内容,根据需要过滤事件:
在 Jersey 2.x 中,您可以通过以下方式检索资源方法:
ContainerRequestContext传入过滤器ContainerRequestFilter#filter(ContainerRequestContext)
方法:
((ExtendedUriInfo) containerRequestContext.getUriInfo()).getMatchedResourceMethod()
将ExtendedUriInfo注入您的过滤器(并调用#getMatchedResourceMethod()
):
@Inject
private ExtendedUriInfo extendedUriInfo;
注意:您的过滤器无法使用注释进行@PreMatching
注释,因为此时匹配信息不可用。