Я использую встроенную обработку Jackson для преобразования входящего JSON в POJO, например:
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response newCustomer( CustomerRepresentation customer)
{
...
}
Если клиент отправляет JSON с недопустимыми полями, Джерси в настоящее время возвращает 500 Internal Server Error
. Вместо этого я хотел бы вернуть 400 Bad Request
, желательно с некоторыми значимыми деталями, указывающими, какие поля находятся в ошибке.
Можно ли понять, как это можно сделать? (По крайней мере, возвращая общее 400 вместо полностью неулокального 500?)
Update: Здесь исключение создается серверной стороной, до вызова моего обработчика:
javax.servlet.ServletException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException:
Unrecognized field "this_isnt_a_known"_field" (Class com.redacted....), not marked as ignorable