Я переношу приложение с питанием от Seam 2 на CDI, и одна из вещей, которая важна для меня, - это обработка ошибок. В Seam 2 я просто заменил обработчик исключений по умолчанию своим, но в CDI я предполагаю, что мне придется использовать Interceptor.CDI - ошибки обработки
Как мне установить это с использованием перехватчика, мне нужно указать, где он будет перехватывать вызовы? В основном я хочу выполнить аудит, поэтому, когда возникает исключение, оно регистрируется, затем администратору отправляется уведомление (электронная почта, xmpp, sms, телефонный звонок).
Когда происходит исключение, есть ли просто событие, в котором я могу слушать и действовать?
Walter
Это выглядит как хороший кандидат. Я также хочу поймать исключения из асинхронных заданий в центральном месте. Возможно, у меня будет 1 для каждого, один для JSF и один для асинхронных заданий. – 2010-07-18 13:52:11
Несколько исключенийHandlerFactories? Не пробовал. Может быть, вы могли бы сообщить мне, если это сработает. Еще один намек: если вы разворачиваете исключение в ExceptionHandlerFactory (его завернутое в FacesException, иногда также EvaluationException) в исходный тип и выкидываете его изнутри фабрики, вы можете обрабатывать исключения декларативно в файле web.xml (но тогда у вас есть для выполнения некоторых трюков передают информацию об исключении на страницу jsf). – ifischer