ExceptionMapper не работает в гризли

Извините за мой плохой английский. Я использую гризли и джерси для создания веб-приложения.

И я реализую так

        ErrorModel errorModel = new ErrorModel("1", "1", "1");
        WebApplicationException applicationException = (WebApplicationException) exception;
        return Response.status(applicationException.getResponse().getStatus()).type(MediaType.APPLICATION_JSON_TYPE).entity(errorModel).build();

Когда я посетил страницу, которой не существует. Я обнаружил, что это вызывает исключение WebApplicationException. Итак, я отладил и обнаружил, что этот метод вызывается и возвращает ответ выше. Но, наконец, ответ http - это html-страница, созданная Grizzly. Что я должен делать

1 ответ

Решение

Убедитесь, что у вас установлено свойство RESPONSE_SET_STATUS_OVER_SEND_ERROR.

У меня была та же проблема с гризли, и он захватывал мой 400 и отправлял обратно страницу ошибки универсального сервлета по умолчанию. Это было решением для Джерси 2.

public class RestApplication extends ResourceConfig {

    private static final Logger logger = Logger.getLogger(RestApplication.class.getName());

    public RestApplication() {
        // Set this property so that the 400 will still send the entity correctly.
        property(ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR, "true");
        registerModules();
    }
Другие вопросы по тегам