You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ch...@apache.org on 2005/10/13 06:41:37 UTC

svn commit: r320652 - /webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java

Author: chinthaka
Date: Wed Oct 12 21:41:26 2005
New Revision: 320652

URL: http://svn.apache.org/viewcvs?rev=320652&view=rev
Log:
Refactoring the repeating code.

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java?rev=320652&r1=320651&r2=320652&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java Wed Oct 12 21:41:26 2005
@@ -86,35 +86,13 @@
         MessageContext msgContext = null;
         OutputStream out = null;
         try {
-            Object sessionContext =
-                    httpServletRequest.getSession().getAttribute(Constants.SESSION_CONTEXT_PROPERTY);
-            if (sessionContext == null) {
-                sessionContext = new SessionContext(null);
-                httpServletRequest.getSession().setAttribute(Constants.SESSION_CONTEXT_PROPERTY,
-                        sessionContext);
-            }
-
-            Enumeration enu = httpServletRequest.getParameterNames();
-            HashMap map = new HashMap();
-            while (enu.hasMoreElements()) {
-                String name = (String) enu.nextElement();
-                String value = httpServletRequest.getParameter(name);
-                map.put(name, value);
-            }
+            Object sessionContext = getSessionContext(httpServletRequest);
+            HashMap map = getHTTPParameters(httpServletRequest);
+            msgContext = createAndSetInitialParamsToMsgCtxt(sessionContext, msgContext, httpServletResponse, httpServletRequest);
 
-            msgContext =
-                    new MessageContext(configContext,
-                            (SessionContext) sessionContext,
-                            configContext.getAxisConfiguration().getTransportIn(new QName(Constants.TRANSPORT_HTTP)),
-                            configContext.getAxisConfiguration().getTransportOut(new QName(Constants.TRANSPORT_HTTP)));
             msgContext.setDoingREST(true);
             msgContext.setServerSide(true);
-            msgContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
-                    new ServletBasedOutTransportInfo(httpServletResponse));
-            msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, getTransportHeaders(httpServletRequest));
-
             out = httpServletResponse.getOutputStream();
-            msgContext.setProperty(SESSION_ID, httpServletRequest.getSession().getId());
             boolean processed =
                     HTTPTransportUtils.processHTTPGetRequest(msgContext,
                             httpServletRequest.getInputStream(),
@@ -129,11 +107,7 @@
             }
         } catch (AxisFault e) {
             if (msgContext != null) {
-                msgContext.setProperty(MessageContext.TRANSPORT_OUT, out);
-                AxisEngine engine = new AxisEngine(configContext);
-                MessageContext faultContext =
-                        engine.createFaultMessageContext(msgContext, e);
-                engine.sendFault(faultContext);
+                handleFault(msgContext, out, e);
             } else {
                 throw new ServletException(e);
             }
@@ -143,6 +117,42 @@
 
     }
 
+    private MessageContext createAndSetInitialParamsToMsgCtxt(Object sessionContext, MessageContext msgContext, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) throws AxisFault {
+        msgContext =
+                new MessageContext(configContext,
+                        (SessionContext) sessionContext,
+                        configContext.getAxisConfiguration().getTransportIn(new QName(Constants.TRANSPORT_HTTP)),
+                        configContext.getAxisConfiguration().getTransportOut(new QName(Constants.TRANSPORT_HTTP)));
+        msgContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
+                new ServletBasedOutTransportInfo(httpServletResponse));
+        msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, getTransportHeaders(httpServletRequest));
+        msgContext.setProperty(SESSION_ID, httpServletRequest.getSession().getId());
+        return msgContext;
+    }
+
+    private HashMap getHTTPParameters(HttpServletRequest httpServletRequest) {
+        HashMap map = new HashMap();
+        Enumeration enu = httpServletRequest.getParameterNames();
+        while (enu.hasMoreElements()) {
+            String name = (String) enu.nextElement();
+            String value = httpServletRequest.getParameter(name);
+            map.put(name, value);
+        }
+
+        return map;
+    }
+
+    private Object getSessionContext(HttpServletRequest httpServletRequest) {
+        Object sessionContext =
+                httpServletRequest.getSession().getAttribute(Constants.SESSION_CONTEXT_PROPERTY);
+        if (sessionContext == null) {
+            sessionContext = new SessionContext(null);
+            httpServletRequest.getSession().setAttribute(Constants.SESSION_CONTEXT_PROPERTY,
+                    sessionContext);
+        }
+        return sessionContext;
+    }
+
     /*
     * (non-Javadoc)
     * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
@@ -161,24 +171,10 @@
         MessageContext msgContext = null;
         OutputStream out = null;
         try {
-            Object sessionContext =
-                    req.getSession().getAttribute(Constants.SESSION_CONTEXT_PROPERTY);
-            if (sessionContext == null) {
-                sessionContext = new SessionContext(null);
-                req.getSession().setAttribute(Constants.SESSION_CONTEXT_PROPERTY,
-                        sessionContext);
-            }
-            msgContext =
-                    new MessageContext(configContext,
-                            (SessionContext) sessionContext,
-                            configContext.getAxisConfiguration().getTransportIn(new QName(Constants.TRANSPORT_HTTP)),
-                            configContext.getAxisConfiguration().getTransportOut(new QName(Constants.TRANSPORT_HTTP)));
-            msgContext.setProperty(HTTPConstants.HTTPOutTransportInfo,
-                    new ServletBasedOutTransportInfo(res));
-            msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, getTransportHeaders(req));
-            msgContext.setProperty(SESSION_ID, req.getSession().getId());
+            Object sessionContext = getSessionContext(req);
+            msgContext = createAndSetInitialParamsToMsgCtxt(sessionContext, msgContext, res, req);
 
-            out =  res.getOutputStream();
+            out = res.getOutputStream();
             HTTPTransportUtils.processHTTPPostRequest(msgContext,
                     req.getInputStream(),
                     out,
@@ -191,7 +187,7 @@
                     msgContext.getOperationContext().getProperty(Constants.RESPONSE_WRITTEN);
 
             //Getting the 
-            res.setContentType("text/xml; charset="+
+            res.setContentType("text/xml; charset=" +
                     msgContext
                             .getProperty(MessageContext.CHARACTER_SET_ENCODING));
 
@@ -202,16 +198,19 @@
         } catch (AxisFault e) {
             if (msgContext != null) {
                 res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                msgContext.setProperty(MessageContext.TRANSPORT_OUT,
-                        out);
-                AxisEngine engine = new AxisEngine(configContext);
-                MessageContext faultContext =
-                        engine.createFaultMessageContext(msgContext, e);
-                engine.sendFault(faultContext);
+                handleFault(msgContext, out, e);
             } else {
                 throw new ServletException(e);
             }
         }
+    }
+
+    private void handleFault(MessageContext msgContext, OutputStream out, AxisFault e) throws AxisFault {
+        msgContext.setProperty(MessageContext.TRANSPORT_OUT,out);
+        AxisEngine engine = new AxisEngine(configContext);
+        MessageContext faultContext =
+                engine.createFaultMessageContext(msgContext, e);
+        engine.sendFault(faultContext);
     }
 
     private Map getTransportHeaders(HttpServletRequest req) {