Я использую Джерси для предоставления сервиса Java REST для внешнего мира.Я предлагаю некоторые функции, использующие JSON, и использую среду Джексона в сочетании с Джерси для преобразования их в POJO.
У меня проблема в том, что если на сервер отправляется неправильный формат Джексона, ответ (содержимоеhttp response) - описание исключений, характерных для Джексона.Если у меня есть POJO с атрибутом «фамилия» и я посылаю «sursname» в строке json на сервер, я получаю:
Unrecognized field "sursname" (Class XY), not marked as ignorable at [Source: sun.net.httpserver.FixedLengthInputStream@903025; line: 1, column: 49] (through reference chain: XY["sursname"])
Это вполне нормально, но я хотел бы иметь свой собственный ответНапример, мой собственный код ошибки.Я уже написал пользовательский ExceptionMapper , который должен отображать все Throwables.
@Provider
public class WebserviceExceptionMapper implements ExceptionMapper<Throwable> {
@Override
public Response toResponse(Exception e) {
e.printStackTrace();
return Response.status(400).entity("{\"errorcode\":\"CRITICAL_ERROR\"}").type(MediaType.APPLICATION_JSON).build();
}
}
Кажется, что исключение Джексона выдается до вызова моего метода веб-сервиса, поэтому у меня нет шансов отобразить его?
У кого-нибудь есть идея?Большое спасибо и извините за мой английский;)