Cartographie Struts 2 Gestionnaire d'Exception pour une Action

J'ai Struts 2 configuré pour rediriger tout java.lang.Exception à une Action spéciale qui enregistre l'exception. Ma redirection fonctionne, mais mon Action a toujours une exception nulle (même si j'ai choisi de lever une Exception). Voici mon struts.xml fichier:

<global-results>
    <result name="errHandler" type="chain">
    <param name="actionName">errorProcessor</param>
    </result>
</global-results>

<global-exception-mappings>
     <exception-mapping exception="java.lang.Exception" result="errHandler" />
</global-exception-mappings>

<action name="errorProcessor" class="myErrorProcessor">
      <result name="error">/error.jsp</result>
</action>

<action name="throwExceptions" class="throwExceptions">
      <result name="success">done.jsp</result>
</action>

Dans mon erreur de processeur, j'ai le texte suivant:

public class myErrorProcessor extends ActionSupport {

   private Exception exception;

   public String execute() {
         System.out.println("null check: " + (exception == null));
         return "error";
   }

   public void setException(Exception exception) {
         this.exception = exception;
   }

   public Exception getException() {
         return exception;
   }
}

Dans le throwsException classe, j'ai le texte suivant:

public String execute() {
     int x = 7 /0;
     return "success";
}

Quand je lance mon programme, le gestionnaire d'Exception a toujours une exception nulle. Je suis en utilisant le type de chaîne de redirection vers le gestionnaire d'exception. Ai-je besoin pour mettre en œuvre une sorte de ExceptionAware interface? Est le Struts 2 exception setter appelé quelque chose de plus setException?

Note: j'ai essayé de suivre ce tutoriel lors de l'écriture de ce programme.

J'ai fourni un exemple qui reproduit le comportement du tutoriel, mais il inclut tous les fichiers nécessaires au complet pour réduire la possibilité d'erreur.

OriginalL'auteur David | 2011-04-21