Имитация кодов ошибок в клиенте REST Джерси - PullRequest
0 голосов
/ 26 января 2012

Я пишу службу REST, а также клиент REST для вызова указанной службы. Я очень новичок в этом, поэтому, пожалуйста, держите меня в покое, если я задам тупой вопрос, но я не смог найти свой ответ через Google.

У нас есть куча кодов ошибок, некоторые из них можно повторить, некоторые нет. Я хочу написать клиент, который повторяет попытки, если это возможно, и в противном случае выявляет эти ошибки. Сейчас моя главная проблема в том, что я не знаю, как имитировать ответы, которые я хочу обработать.

Например, я делаю:

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 голосов
/ 27 января 2012

Вот ответ, который я придумал:

Ранее я не знал, как установить статус ответа, но этого можно достичь с помощью локального поля HTTPServletResponse.

Затем, основываясь на каком-либо свойстве в вашем вызове REST, вы можете вернуть определенный ответ по dong response.setStatus (440) или как угодно.

Не забудьте добавить аннотацию @Context в ваш ответ, чтобы магия джерси могла его создать.

@ Контекст HTTPServletResponse response;

...