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) {