Обработчик исключений джерси - как получить больше информации о плохом запросе

Я написал довольно стандартный сервис для загрузки файлов из нескольких частей. Когда я использовал curl для тестирования, я продолжал получать 400 неверных запросов. Причин оказалось много, но я всегда получал один и тот же 400 bad request. Например, мой временный каталог моего сервера приложений не существовал. Я ожидал, что в журналах будет выдано какое-то исключение более низкого уровня, но я ничего не видел. Я не слишком хорошо знаком с Джерси и ищу какие-либо советы о том, как я могу справиться с этим, чтобы по-прежнему возвращать 400/плохой запрос, но каким-то образом регистрировать дополнительную информацию. Любые идеи? Я использую майку 1.x


person Barry    schedule 21.08.2013    source источник


Ответы (1)


Если ошибка возникает в вашем собственном методе, вы можете использовать Response в качестве типа возвращаемого значения для ваших методов. Затем вы можете указать как код состояния, так и возвращаемое тело сообщения.

throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity("<your message here>").build());

Если ошибка возникает в какой-то другой среде, исключение должно быть зарегистрировано в stderr. В зависимости от того, какой веб-сервер вы используете, вы можете настроить его для отправки исключений в виде тела ответа.

person Martin Fahl    schedule 22.08.2013
comment
Можете ли вы подробнее описать, что вы имеете в виду под ответом? Вы имеете в виду ответ от контроллера/метода? Мне было любопытно, какой внутренний класс выдает этот 400 неверный запрос, потому что я не в своем методе. Когда у меня возникла эта проблема, и я подключил свой отладчик, я даже не включил его в свой метод, казалось, что это внутренний код Джерси, и именно здесь произошло исключение. - person Barry; 22.08.2013