1 19 20 package com.lutris.airsent.presentation; 21 import com.lutris.airsent.presentation.messenger.*; 22 import com.lutris.logging.*; 23 import com.lutris.appserver.server.httpPresentation.*; 24 import com.lutris.appserver.server.*; 25 import java.io.*; 26 import org.enhydra.xml.xmlc.XMLObject; 27 import java.lang.reflect.Method; 28 35 public class ErrorHandler implements HttpPresentation { 36 37 43 public void run(HttpPresentationComms comms) 44 throws HttpPresentationException { 45 46 java.util.Enumeration enum = comms.request.getHeaderNames(); 47 while(enum.hasMoreElements()) { 48 String name = (String)enum.nextElement(); 49 System.out.println("HEADER " + name + " = "+ comms.request.getHeader(name)); 50 } 51 52 53 Class tempClass=null; 54 Object zvek= null; 55 Method errorTemp = null; 56 Method stackTemp = null; 57 58 try{ 59 Class stringClass=Class.forName("java.lang.String"); 60 tempClass = Class.forName(DeviceUtils.getPageName(comms, "com.lutris.airsent.presentation.messenger.Error")); 61 zvek= comms.xmlcFactory.create(tempClass); 62 Class[] argTypeArr={stringClass}; 63 errorTemp = tempClass.getMethod("setTextErrorMessage",argTypeArr); 64 stackTemp = tempClass.getMethod("setTextStackTrace",argTypeArr); 65 }catch(Exception e){} 66 67 68 71 try{ 72 if (null != comms.exception) { 73 Enhydra.getLogChannel().write(Logger.DEBUG, 74 "Exception in Airsent", 75 comms.exception); 76 Object [] temp={comms.exception.getMessage()}; 77 errorTemp.invoke(zvek,temp); 78 } 80 81 82 if (null != comms.exception) { 83 StringWriter stringWriter = new StringWriter(); 84 85 comms.exception.printStackTrace(new PrintWriter(stringWriter)); 86 87 LogChannel logChannel = Enhydra.getLogChannel(); 88 int level = logChannel.getLevel("DEBUG"); 89 90 logChannel.write(level, 92 "airSent.presentation.ErrorHandler stack trace = "); 93 logChannel.write(level, stringWriter.toString()); 94 logChannel.write(level, 95 "airSent.presentation.ErrorHandler caught an exception - " 96 + comms.exception.toString(), comms.exception); 97 98 System.out.print("airSent.presentation.ErrorHandler stack trace = "); 100 System.out.print(stringWriter.toString()); 101 System.out.print(comms.exception.toString()); 102 103 Object [] temp1={comms.exception.getMessage()}; 105 Object [] temp2={stringWriter.toString()}; 106 errorTemp.invoke(zvek,temp1); 107 stackTemp.invoke(zvek,temp2); 108 } 111 }catch (Exception e){} 112 comms.response.writeDOM((XMLObject)zvek); 113 } 114 115 } 116 117 118 119 | Popular Tags |