Централизованные исключения шва

Я использую шов 2.2, простые шрифты в качестве уровня представления представления. Я бы написал какую-то инфраструктуру, чтобы фиксировать все исключения. Например, я вставляю в фейслеты следующий фрагмент кода:

<p:commandButton actionListener="#{mySeamController.aMethod()}"

в классе MySeamController, указанный выше метод:

public void aMethod()
{
    throw new NullPointerException();
}

в контроллере я пишу метод:

 @Observer("myapp.exceptions.exception")
 public void onSystemException(Exception e)
 {  
  System.out.println("a exception was occurred");

 }

я пишу класс для перехвата исключений:

@Scope(ScopeType.APPLICATION)
@BypassInterceptors
@Install( precedence = Install.MOCK, classDependencies = "javax.faces.context.FacesContext")
@Name("org.jboss.seam.exception.exceptions")
public class ExceptionHandler extends org.jboss.seam.exception.Exceptions{


 private static final long serialVersionUID = 1L;
 @Logger
    Log log;

 public void handle(Exception e) throws Exception 
 {            
  Events.instance().raiseEvent("myapp.exceptions.exception", e);
  super.handle(e);

 }
}

но я Я заметил, что когда я использую actionListener

<p:commandButton actionListener="#{mySeamController.aMethod()}"

вместо action

<p:commandButton action="#{mySeamController.aMethod()}"

, класс ExceptionHandler не обнаружил никаких исключений. Зачем? Кто-нибудь может помочь? С уважением

6
задан vincenzo strawberry 15 November 2010 в 21:41
поделиться