模拟Jersey REST客户端中的错误代码

时间:2012-01-26 17:26:58

标签: rest client jersey http-status-codes

我正在编写REST服务,还有一个REST客户端来调用所述服务。我对此非常陌生,所以如果我提出一个愚蠢的问题,请与我同行,但我无法通过谷歌找到答案。

我们有一堆错误代码,有些是可重试的,有些则不是。我想写一个客户端,如果可能的话重试,否则会出现这些错误。我现在的主要问题是我不知道如何模拟我想要处理的响应。

例如我在做:

Client client = Client.create();
    WebResource resource = client.resource("http://localhost:<port>/test");
    resource.type(MediaType.APPLICATION_JSON);
    ClientResponse response = resource.get(ClientResponse.class);

    if (response.getClientResponseStatus().getStatusCode() == 404) {
           //do something
    }

是否有一种好方法可以覆盖特定的类或在此处设置处理程序,以便我可以模拟我想要测试和处理的所有错误代码?

此外,作为后续行动,是否有人知道有关REST客户端错误处理最佳实践信息的良好资源(在重试呼叫之前应该等待多长时间等)

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是我提出的答案:

我之前不知道如何在响应上设置状态,但可以通过HTTPServletResponse本地字段来实现。

然后根据REST调用中的某些属性,您可以通过dong response.setStatus(440)或其他任何内容返回特定的响应。

不要忘记在你的回复上添加一个@Context注释,以便jersey magic可以实例化它。

@Context HTTPServletResponse响应;