java - Best Practices for GWT services exceptions logging -


i decided add logging system gwt service layer. first of wanted log exceptions thrown layer. had object similar spring's servletdispatcher, calls other services. thought add logging there, realized gwt services wraps checked exceptions in servletresponse , unchecked unexpectedexception.

can share experience problem? best way log checked , unchecked exceptions gwt services.


i found solution suggests extend remoteserviceservlet , override default exceptions flow. find solution time-consuming. anybode know easier variant?

on server side, have subclass of remoteserviceservlet use service implementations. mention seems time-consuming, here's code looks like. once , you're done.

@override protected void dounexpectedfailure(throwable t) {     t.printstacktrace(system.err);     super.dounexpectedfailure(t); } 

note: don't send system.err , shouldn't either, idea.

on client side, use subclass of asynccallback called asyncsuccesscallback. handles onfailure case uniformly of our rpc calls. of our callback code can deal onsuccess case knowing onfailure handled. provides single place change implementation later.

public abstract class asyncsuccesscallback<t> implements asynccallback<t> {      public void onfailure(throwable t) {         handleexception(t);     }      protected void handleexception(throwable t) {          window.alert(t.getmessage());     }  } 

note: don't use window.alert, again, idea. in case display gwt dialogbox displays form post different server accepts error reports. form allows user type description of doing when error occurred.

on client side, if want stack trace, need write little code:

// lineending, use "<br>" html, "\n" text public static final string getstacktrace(throwable t, string lineending) {     object[] stacktrace = t.getstacktrace();     if (stacktrace != null) {         stringbuilder output = new stringbuilder();         (object line : stacktrace) {             output.append(line);             output.append(lineending);         }         return output.tostring();     } else {         return "[stack unavailable]";     } } 

Comments

Popular posts from this blog

android - Spacing between the stars of a rating bar? -

aspxgridview - Devexpress grid - header filter does not work if column is initially hidden -

c# - How to execute a particular part of code asynchronously in a class -