Джерси: Возвращает ошибку 400 вместо 500 при недопустимом теле запроса

Я использую встроенную в Джерси обработку Джексона для преобразования входящего JSON в POJO, например:

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response newCustomer( CustomerRepresentation customer)
{
...
}

Если клиент отправляет JSON с недопустимыми полями, Джерси в настоящее время возвращает 500 Internal Server Error. Вместо этого я хотел бы вернуть 400 Bad Request, желательно с некоторыми значимыми подробностями, указывающими, какие поля содержат ошибки.

Любое понимание того, как это может быть достигнуто? (По крайней мере, возвращать стандартные 400 вместо совершенно неуместных 500?)

Обновление: Вот исключение, генерируемое на стороне сервера до вызова моего обработчика:

javax.servlet.ServletException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 
Unrecognized field "this_isnt_a_known"_field" (Class com.redacted....), not marked as ignorable
21
задан HolySamosa 27 March 2012 в 17:12
поделиться