ContainerResponseFilter可以停止执行过滤器堆栈

时间:2018-03-06 19:24:53

标签: jax-rs jersey-2.0

我可以编写一个响应过滤器来停止执行链中的其他过滤器吗?

public class MyResponseFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException {
        Response response = HttpConnection.getCurrentConnection().getHttpChannel().getResponse();
        if (response.isCommitted()) {
            //stop processing here      
        }
    }
}

ContainerRequestContext有一个abort方法,但ContainerResponseContext没有。

我想这样做,因为我使用第三方请求过滤器写入响应,然后抛出WebApplicationException,我不希望响应链将WebApplicationException转换为Response并再次写入。

0 个答案:

没有答案