Обработка ошибок Struts2 - стек исключений не найден - PullRequest
2 голосов
/ 04 ноября 2010

Я столкнулся со странной вещью. Я настроил обработку исключений в стойках 2.1.8, как указано здесь , только для того, чтобы я перенаправлял на действие вместо JSP (для отправки писем ...).

Итак, в действии у меня есть

ActionContext ac = ActionContext.getContext();
String stackTrace = null;
if(ac.getValueStack().findValue("exceptionStack") != null) {            
    stackTrace =  ac.getValueStack().findValue("exceptionStack").toString();
} else {
    stackTrace = "Stack trace not found!";
}

Мне пришлось сделать это если-иначе, потому что иногда значение равно нулю. Я не нашел разницы, почему иногда я получаю трассировку стека, а иногда нет. Все ошибки происходят в Struts2.

У кого-нибудь была подобная проблема? Кто-нибудь может направить меня, где проблема?

Ответы [ 2 ]

1 голос
/ 05 ноября 2010

если вы отобразите исключение с типом результата цепочки, вы сохраните тот же запрос и тот же ValueStack.

1 голос
/ 05 ноября 2010

Во-первых, ValueStack для каждого запроса (каждый поток имеет свой собственный), поэтому перенаправление на новое действие приведет к потере всех данных, которые были у вас в предыдущем запросе ValueStack.

.тем не менее, какова ваша цель здесь?Предоставленная вами ссылка объясняет, как сопоставить различные типы исключений с пользовательскими страницами ошибок (или результатами).Почему это не работает для вас?Вы упоминаете, что хотите отправлять электронные письма - отправляете ли вы электронное уведомление о фактическом исключении (и трассировке стека)?

Если вы можете немного рассказать о том, что вы пытаетесь сделать, то, возможно, мы можем датьвам какое-то руководство.

...