com.allen_sauer.gwt.log.server
Class RemoteLoggerServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet
              extended by com.google.gwt.user.server.rpc.RemoteServiceServlet
                  extended by com.allen_sauer.gwt.log.server.RemoteLoggerServlet
All Implemented Interfaces:
RemoteLoggerService, com.google.gwt.user.client.rpc.RemoteService, com.google.gwt.user.server.rpc.SerializationPolicyProvider, java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
Direct Known Subclasses:
PromiscuousRemoteLoggerServlet, RemoteLoggerServiceImpl

public class RemoteLoggerServlet
extends com.google.gwt.user.server.rpc.RemoteServiceServlet
implements RemoteLoggerService

Default remote logger servlet, which can be configured as a web.xml servlet.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet
perThreadRequest, perThreadResponse
 
Constructor Summary
RemoteLoggerServlet()
           
 
Method Summary
protected  void doOptions(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          If the servlet init-param is set, handle preflight OPTIONS requests which are sent by the browser before sending a cross-domain XHR.
protected  java.lang.String getAccessControlAllowOriginHeader(javax.servlet.http.HttpServletRequest request)
          Method which returns the , or null if no cross-domain access control headers should be set.
 void init(javax.servlet.ServletConfig config)
           
 java.util.ArrayList<LogRecord> log(java.util.ArrayList<LogRecord> logRecords)
           
protected  void onAfterResponseSerialized(java.lang.String serializedResponse)
          Ensures that the the RPC response contains the necessary access control headers for cross-domain access.
protected  boolean shouldReturnDeobfuscatedStackTraceToClient()
          Override this method to prevent clients from receiving deobfuscated JavaScript stack traces.
 
Methods inherited from class com.google.gwt.user.server.rpc.RemoteServiceServlet
checkPermutationStrongName, doGetSerializationPolicy, getSerializationPolicy, onBeforeRequestDeserialized, processCall, processPost, shouldCompressResponse
 
Methods inherited from class com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet
doPost, doUnexpectedFailure, getPermutationStrongName, getThreadLocalRequest, getThreadLocalResponse, onAfterRequestDeserialized, readContent
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RemoteLoggerServlet

public RemoteLoggerServlet()
Method Detail

init

public final void init(javax.servlet.ServletConfig config)
                throws javax.servlet.ServletException
Specified by:
init in interface javax.servlet.Servlet
Overrides:
init in class javax.servlet.GenericServlet
Throws:
javax.servlet.ServletException

log

public final java.util.ArrayList<LogRecord> log(java.util.ArrayList<LogRecord> logRecords)
Specified by:
log in interface RemoteLoggerService

doOptions

protected void doOptions(javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response)
                  throws javax.servlet.ServletException,
                         java.io.IOException
If the servlet init-param is set, handle preflight OPTIONS requests which are sent by the browser before sending a cross-domain XHR.

Overrides:
doOptions in class javax.servlet.http.HttpServlet
Parameters:
request - the current HTTP request
response - the current HTTP response
Throws:
javax.servlet.ServletException - see super implementation
java.io.IOException - see super implementation

getAccessControlAllowOriginHeader

protected java.lang.String getAccessControlAllowOriginHeader(javax.servlet.http.HttpServletRequest request)
Method which returns the , or null if no cross-domain access control headers should be set. This classes uses the ACCESS_CONTROL_ALLOW_ORIGIN init-param configuration parameter. Subclasses may override this method implementation.

Parameters:
request - the current HTTP request
Returns:
the which should be set in response to the current AbstractRemoteServiceServlet.getThreadLocalResponse()

onAfterResponseSerialized

protected void onAfterResponseSerialized(java.lang.String serializedResponse)
Ensures that the the RPC response contains the necessary access control headers for cross-domain access.

Overrides:
onAfterResponseSerialized in class com.google.gwt.user.server.rpc.RemoteServiceServlet
Parameters:
serializedResponse - the serialized RPC response

shouldReturnDeobfuscatedStackTraceToClient

protected boolean shouldReturnDeobfuscatedStackTraceToClient()
Override this method to prevent clients from receiving deobfuscated JavaScript stack traces. For example, you may choose to only allow (logged in) developers to access resymbolized stack traces.

Returns:
true if the deobfuscated stack traces should be returned to the client
See Also:
AbstractRemoteServiceServlet.getThreadLocalRequest()