]>
git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/ajaxplorer/mvc/AjxpDriverRequestHandler.java
10593fc0d024420bbe6f0035ba05b0e43a92124d
1 package org
.argeo
.slc
.web
.ajaxplorer
.mvc
;
3 import java
.io
.IOException
;
6 import javax
.servlet
.ServletException
;
7 import javax
.servlet
.http
.HttpServletRequest
;
8 import javax
.servlet
.http
.HttpServletResponse
;
10 import org
.apache
.commons
.logging
.Log
;
11 import org
.apache
.commons
.logging
.LogFactory
;
12 import org
.argeo
.slc
.web
.ajaxplorer
.AjxpAnswer
;
13 import org
.argeo
.slc
.web
.ajaxplorer
.AjxpDriver
;
14 import org
.springframework
.web
.HttpRequestHandler
;
16 public class AjxpDriverRequestHandler
implements HttpRequestHandler
{
18 protected final Log log
= LogFactory
.getLog(getClass());
19 private AjxpDriver driver
;
21 public void handleRequest(HttpServletRequest req
, HttpServletResponse resp
)
22 throws ServletException
, IOException
{
23 long id
= System
.currentTimeMillis();
25 if (log
.isDebugEnabled())
26 logRequest(id
, req
.getMethod(), req
);
28 AjxpAnswer answer
= driver
.executeAction(req
);
29 answer
.updateResponse(resp
);
31 if (log
.isTraceEnabled())
32 log
.trace(id
+ " " + req
.getMethod() + " completed");
33 } catch (Exception e
) {
34 log
.error(id
+ " Cannot process request.", e
);
35 throw new ServletException("Cannot process request " + id
, e
);
40 protected void logRequest(long id
, String method
, HttpServletRequest req
) {
41 if (log
.isDebugEnabled()) {
42 StringBuffer buf
= new StringBuffer(id
+ " Received " + method
45 @SuppressWarnings("unchecked")
46 Map
<String
, String
[]> params
= req
.getParameterMap();
48 for (Map
.Entry
<String
, String
[]> entry
: params
.entrySet()) {
51 buf
.append(entry
.getKey()).append("={");
53 for (String value
: entry
.getValue()) {
63 log
.debug(buf
.toString());
67 public void setDriver(AjxpDriver driver
) {