Джерси: возвращая ошибку 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