【问题标题】:CXF client proxy how to handle certain response codes within the clientCXF客户端代理如何处理客户端内的某些响应代码
【发布时间】:2014-11-21 17:49:27
【问题描述】:

当我使用代理客户端发送请求时,如果我得到某个响应,我希望能够修改请求,然后为所有请求再次发送相同的请求。

通常我会这样做:

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 代理客户端明确支持这一点的方法,我该如何实现它?

【问题讨论】:

    标签: java web-services proxy cxf


    【解决方案1】:

    您需要编写一个拦截器来为每个请求执行此操作。 在这里您可以获取示例代码和文档http://cxf.apache.org/docs/jax-rs-filters.html

    【讨论】:

    • 我知道 CXF 拦截器。这是专门针对 CXF 代理的,并且在客户端而不是通常实现拦截器的服务器端。
    • No Man,拦截器也可以在客户端实现。阅读文档并尝试一些东西..cxf.apache.org/docs/jax-rs.html#JAX-RS-ClientAPI
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 2015-03-07
    • 1970-01-01
    相关资源
    最近更新 更多