1 25 29 package org.jresearch.gossip.actions; 30 31 import java.io.PrintWriter ; 32 import java.io.StringWriter ; 33 34 import javax.servlet.ServletException ; 35 import javax.servlet.http.HttpServletRequest ; 36 import javax.servlet.http.HttpServletResponse ; 37 38 import org.apache.log.Logger; 39 import org.apache.struts.action.ActionForm; 40 import org.apache.struts.action.ActionForward; 41 import org.apache.struts.action.ActionMapping; 42 import org.apache.struts.action.ExceptionHandler; 43 import org.apache.struts.config.ExceptionConfig; 44 import org.jresearch.gossip.IConst; 45 import org.jresearch.gossip.exception.SystemException; 46 import org.jresearch.gossip.log.avalon.JGossipLog; 47 48 52 public class ExceptionHandlerAction extends ExceptionHandler { 53 54 private Logger log; 55 56 59 public ExceptionHandlerAction() { 60 super(); 61 try { 62 log = JGossipLog.getInstance().getAppLogger(); 63 } catch (SystemException e) { 64 } 65 } 66 67 77 public ActionForward execute(Exception ex, ExceptionConfig econf, 78 ActionMapping mapping, ActionForm formInstance, 79 HttpServletRequest request, HttpServletResponse response) 80 throws ServletException { 81 ActionForward forward = super.execute(ex, econf, mapping, formInstance, 82 request, response); 83 StringBuffer message = new StringBuffer (); 84 if (ex instanceof SystemException) { 85 SystemException se = (SystemException) ex; 86 if (se.getNestedException() == null) { 87 message.append(se.getTrace()); 88 } else { 89 Exception e = se.getNestedException(); 90 message.append(e.getMessage()); 91 message.append("\n"); 92 message.append(se.getTrace()); 93 } 94 } else { 95 message.append(ex.getMessage()); 96 ex.printStackTrace(); 97 } 98 logException(ex); 99 request.setAttribute(IConst.CONTEXT.SYSTEM_EXCEPTION_MESSAGE, message 100 .toString()); 101 return forward; 102 } 103 104 protected void logException(Exception ex) { 105 StringWriter sw = new StringWriter (); 106 ex.printStackTrace(new PrintWriter (sw)); 107 log.error(sw.toString()); 108 } 109 }
| Popular Tags
|