Я немного смущен об обработке Исключения или ее отсутствии в RESTEasy с JBoss AS7/Wildfly. Я не совсем уверен, в каком «домене» обработка исключений попадает точно.Обработка некорректного @QueryParam с помощью RESTEasy
Это то, что я использую для тестирования:
@GET
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test(@QueryParam("id") final long id) {
log.info("Incoming request! Wee! With id " + id + "!");
return Response.ok().build();
}
До сих пор, так хорошо. Это ведет себя так, как ожидалось, с localhost/app/rest/test? Id = 123. Однако, когда я добавляю что-то, что не «подходит» в параметре, например localhost/app/rest/test? Id = 123abc, я получаю длинное исключение из RESTEasy, правильно информируя меня о том, что он не вписывается в ожидаемый параметр.
Но я не понимаю, как я могу справиться с этим исключением. Очевидно, что я бы не хотел, чтобы 40-строчная трассировка стека попала в мой основной (или любой) журнал, но сама сделала правильный журнал ошибок. Мое исследование получило общий способ обработки всех исключений типа NumberFormatException, что совершенно не подходит для любого разумного подхода к регистрации.
Итак, как я могу справиться с этой проблемой? Поскольку это происходит «вне» моего кода, я не могу точно его окружить try/catch, а конкретный плохой параметр для конкретного REST-сопоставления на самом деле не является чем-то достаточно общим, чтобы написать приложение Mapper Exception.
Не отвечает ли сервер ошибкой '4xx'? –
Это не так, но я считаю, что это действительно легко настраивается, поэтому я не спрашивал об этом, так как я ожидаю, что смогу обработать эту часть без посторонней помощи. Меня беспокоит только обработка исключений на стороне сервера. – Torque