Заставить Struts отправлять 500 Internal Server Error при возникновении исключений

Я работаю над интерфейсом JavaScript с поддержкой AJAX, который вызывает бэкенд Java, написанный с помощью Struts. Моя проблема в том, что когда бэкэнд выдает исключение, клиент все еще видит код ответа HTTP «200 OK» вместо «500 Internal Server Error», как можно было бы ожидать.

Это постоянно сбивает меня с толку, потому что моя сторонняя клиентская библиотека JavaScript зависит от кодов состояния HTTP, чтобы определить, что-то не так с вызовом AJAX, как это обычно делают большинство современных библиотек. Ошибки остаются незамеченными, пока мой код не сломается, когда он попытается разобрать то, что обычно было бы JSON.

Я действительно хочу избежать взлома моей клиентской JS-библиотеки, чтобы изящно обрабатывать эти ошибки. Итак, как я могу заставить Struts выдавать мне код состояния 500, когда в серверной части возникло необработанное исключение? Разве это не должно быть поведением Struts по умолчанию?

Редактировать: Код на стороне клиента в данном случае не имеет значения. Мне нужно исправить сервер, чтобы он отправлял соответствующий код состояния при возникновении необработанных исключений. Спасибо!

8
задан curtisdf 14 March 2012 в 19:02
поделиться