2013-07-24 2 views
0

У меня есть этот метод POST в успокоительной:RESTful: код возврата ошибки вместо JSON

@POST 
@Produces("application/json") 
@Consumes("application/json") 
public String doPostJson(String string) { 
    ... 
} 

Обычно он получает JSON и возвращает JSON. Если я столкнулся с некорректным JSON в полученном параметре, я бы хотел вернуть код ошибки «400 Bad Request». Как я могу это сделать?

Спасибо.

+0

Если вы хотите вернуть код ошибки 400, вы должен изменить заголовок ответа, когда вы вернетесь к вызывающему. –

ответ

1

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

throw new WebApplicationException(Response.Status.BAD_REQUEST); 

Вы можете посмотреть более подробную на WebApplicationException здесь:
http://docs.oracle.com/javaee/6/api/javax/ws/rs/WebApplicationException.html

и списка Response.Status здесь:
http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/Response.Status.html

Другой хорошо читать в SO, связанные с этим:
JAX-RS/Jersey how to customize error handling?

+0

Я решил это уже :) Спасибо за подтверждение, что это правильный путь. – flyer

Смежные вопросы