当我使用代理客户端发送请求时,如果我收到某个响应,我希望能够修改请求,然后再次针对所有请求发送相同的请求。
通常我会这样做:
BookStore proxy = JAXRSClientFactory.create("http://books", BookStore.class);
try
{
proxy.getBook("someId");
}
catch(WebApplicationException ex)
{
Response r = ex.getResponse();
if (r.getStatusCode() == 404)
{
proxy.getBook("anotherId");
}
}
但是在这种情况下,我想对所有请求做一些常见的事情:如果我得到一个特定的http代码,修改一些标题值,然后再试一次(可能会限制重试次数)。
我还没有看到cxf代理客户端明确支持这种方式,我该如何实现呢?
答案 0 :(得分:1)
您需要编写一个拦截器来为每个请求执行此操作。 在这里,您可以获得示例代码和文档http://cxf.apache.org/docs/jax-rs-filters.html