Кто ел мое исключение? (jsp dispatcher.include) - PullRequest
0 голосов
/ 28 октября 2011

Я реализую стороннее приложение J2EE с Websphere в качестве сервера приложений.У меня есть следующий код в одной из JSP (callPage)

try {
  RequestDispatcher dispatcher = request.getRequestDispatcher(includePage);
  dispatcher.include(request,response);
} catch (Exception Ex) {
  // process the excpetion 
  // and create appropriate response object with body as XML string
}

includePage также является страницей JSP, и ожидается, что ответ будет иметь тело XML, когда нет исключений.В конкретном сценарии includePage генерирует допустимое (пользовательское) исключение.Но элемент управления не идет, чтобы поймать блок в callPage.

При проверке ответа я обнаружил, что тело ответа содержит строку <HTTP ResponseCode><CustomExceptionType><CustomException.getMessage()> с кодом ответа 500. Поскольку тело ответа не является строкой XML, мы получаем исключение синтаксического анализа ниже по потоку.

Я проверил приложения web.xml, и для кода 500 не указана пользовательская страница ошибок. Я обсуждал с администратором Websphere, и он не мог помочь (он утверждает, что ничего не сделал с экземпляром).Команда поддержки поставщика приложений проверила его в своем экземпляре Websphere и подтвердила, что он работает.По их словам, это должна быть конфигурация Websphere.

Мои знания о среде J2EE или Websphere ограничены.Я пытался выполнить поиск по существующим запросам, но не смог выяснить возможную причину.

Ответы [ 3 ]

1 голос
/ 05 сентября 2012

Возможно, вы уже решили эту проблему, но на всякий случай:

Согласно http://docs.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html

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

Я подозреваю (но я не уверен), поэтому ваше исключение теряется.

1 голос
/ 12 сентября 2012

Проблема была решена путем установки настраиваемого свойства веб-контейнера Websphere com.ibm.ws.webcontainer.dispatcherRethrowSER.Подробности здесь http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Frweb_custom_props.html

0 голосов
/ 03 ноября 2011

Обычно для обработки исключений мы включаем директиву страницы ошибки в JSP. Эта ошибка JSP является той, где управление будет перенаправлено в случае возникновения исключения. Не уверен, что это сработает в вашем случае, но можно попробовать: http://www.roseindia.net/jsp/simple-jsp-example/exception-handling-in-jsp.shtml

Дайте нам знать, если это работает.

-ng

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...