Подайте 503 для необработанных исключений в Java Appengine

Я хотел бы обслуживать ошибку статуса 503 для любого из моих сервлетов java appengine, которые вызывают неперехваченное исключение. В настоящее время они бросают 500.

Подробнее о том, почему: у меня есть клиентское приложение, которое делает ajax-вызовы моему приложению appengine. Иногда сам appengine (не мои сервлеты) выдает 500 ошибок, потому что с appengine временно что-то не так. Мое приложение также выдает 500 ошибок, когда в моем коде сервлета есть ошибка, и возникает неперехваченное исключение. Я хотел бы, чтобы клиент мог различать их, потому что для первого он может сделать повторную попытку, а для второго - нет. Таким образом, я хочу, чтобы мои исключения, которые выбрасываются, приводили к коду состояния, отличному от 500.

Я знаю, что могу поместить try catch в мой doGet и doPost в свой сервлет, но у меня есть куча сервлетов, и я не хочу помещать try catch в каждый отдельный сервлет. Это можно как-то настроить?


person aloo    schedule 02.04.2012    source источник


Ответы (2)


GAE/J — это, по сути, сервер Jetty. Пробовали ли вы выполнить шаги, описанные в Как создать собственные страницы ошибок на странице документации Jetty?

В качестве пищи для размышлений я использую JAX-RS для своего приложения, и фреймворк очень легко перехватывает такие исключения благодаря использованию Сопоставители исключений.

person Ibrahim Arief    schedule 02.04.2012

нашел ответ здесь: GAE, как увидеть производственные исключения?

в основном просто установите фильтр, который запускается первым и ловит все ваши исключения.

person aloo    schedule 02.04.2012