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 he...@apache.org on 2005/06/30 06:34:45 UTC
svn commit: r202479 - in
/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport:
http/AxisServlet.java http/HTTPWorker.java mail/MailWorker.java
tcp/TCPWorker.java
Author: hemapani
Date: Wed Jun 29 21:34:42 2005
New Revision: 202479
URL: http://svn.apache.org/viewcvs?rev=202479&view=rev
Log:
handling the errors thrown before AxisEngine is invoked
Modified:
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPWorker.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java
webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/tcp/TCPWorker.java
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java?rev=202479&r1=202478&r2=202479&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/AxisServlet.java Wed Jun 29 21:34:42 2005
@@ -26,15 +26,14 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.namespace.QName;
-import javax.xml.stream.FactoryConfigurationError;
import org.apache.axis.Constants;
import org.apache.axis.context.ConfigurationContext;
import org.apache.axis.context.ConfigurationContextFactory;
import org.apache.axis.context.MessageContext;
import org.apache.axis.context.SessionContext;
+import org.apache.axis.engine.AxisEngine;
import org.apache.axis.engine.AxisFault;
-import org.apache.axis.om.OMException;
/**
* Class AxisServlet
@@ -80,6 +79,7 @@
HttpServletResponse httpServletResponse)
throws ServletException, IOException {
httpServletResponse.setContentType("text/xml; charset=utf-8");
+ MessageContext msgContext = null;
try {
Object sessionContext =
@@ -99,7 +99,7 @@
map.put(name, value);
}
- MessageContext msgContext =
+ msgContext =
new MessageContext(
configContext,
(SessionContext) sessionContext,
@@ -124,12 +124,12 @@
if (!processed) {
lister.handle(httpServletRequest, httpServletResponse);
}
- } catch (OMException e) {
- throw new AxisFault(e);
- } catch (FactoryConfigurationError e) {
- throw new AxisFault(e);
- } catch (IOException e) {
- throw new AxisFault(e);
+ } catch (Exception e) {
+ AxisEngine engine = new AxisEngine(configContext);
+ if(msgContext!= null){
+ msgContext.setProperty(MessageContext.TRANSPORT_OUT, httpServletResponse.getOutputStream());
+ engine.handleFault(msgContext,e);
+ }
}
}
@@ -149,6 +149,7 @@
*/
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
+ MessageContext msgContext = null;
try {
System.out.println("came here");
Object sessionContext =
@@ -157,7 +158,7 @@
sessionContext = new SessionContext(null);
req.getSession().setAttribute(Constants.SESSION_CONTEXT_PROPERTY, sessionContext);
}
- MessageContext msgContext =
+ msgContext =
new MessageContext(
configContext,
(SessionContext) sessionContext,
@@ -180,10 +181,11 @@
res.setStatus(HttpServletResponse.SC_ACCEPTED);
}
} catch (AxisFault e) {
- throw new ServletException(e);
+ AxisEngine engine = new AxisEngine(configContext);
+ if(msgContext!= null){
+ msgContext.setProperty(MessageContext.TRANSPORT_OUT, res.getOutputStream());
+ engine.handleFault(msgContext,e);
+ }
}
}
-
-
-
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPWorker.java?rev=202479&r1=202478&r2=202479&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPWorker.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/http/HTTPWorker.java Wed Jun 29 21:34:42 2005
@@ -28,6 +28,7 @@
import org.apache.axis.context.ConfigurationContext;
import org.apache.axis.context.MessageContext;
import org.apache.axis.description.TransportOutDescription;
+import org.apache.axis.engine.AxisEngine;
import org.apache.axis.engine.AxisFault;
import org.apache.axis.util.threadpool.AxisWorker;
import org.apache.commons.logging.Log;
@@ -38,12 +39,14 @@
private ConfigurationContext configurationContext;
private Socket socket;
- public HTTPWorker(ConfigurationContext configurationContext,Socket socket){
+ public HTTPWorker(ConfigurationContext configurationContext, Socket socket) {
this.configurationContext = configurationContext;
this.socket = socket;
- }
+ }
public void doWork() {
+ MessageContext msgContext = null;
+ SimpleHTTPOutputStream out = null;
try {
if (socket != null) {
if (configurationContext == null) {
@@ -55,7 +58,7 @@
TransportOutDescription transportOut =
configurationContext.getAxisConfiguration().getTransportOut(
new QName(Constants.TRANSPORT_HTTP));
- MessageContext msgContext =
+ msgContext =
new MessageContext(
configurationContext,
configurationContext.getAxisConfiguration().getTransportIn(
@@ -68,7 +71,7 @@
Map map = reciver.parseTheHeaders(inStream, true);
//build a way to write the respone if the Axis choose to do so
- SimpleHTTPOutputStream out;
+
String transferEncoding = (String) map.get(HTTPConstants.HEADER_TRANSFER_ENCODING);
if (transferEncoding != null
&& HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED.equals(transferEncoding)) {
@@ -80,8 +83,9 @@
msgContext.setProperty(MessageContext.TRANSPORT_OUT, out);
//This is way to provide Accsess to the transport information to the transport Sender
- msgContext.setProperty(HTTPConstants.HTTPOutTransportInfo,new SimpleHTTPOutTransportInfo(out));
-
+ msgContext.setProperty(
+ HTTPConstants.HTTPOutTransportInfo,
+ new SimpleHTTPOutTransportInfo(out));
if (HTTPConstants.HEADER_GET.equals(map.get(HTTPConstants.HTTP_REQ_TYPE))) {
//It is GET handle the Get request
@@ -117,15 +121,26 @@
out.finalize();
}
} catch (Throwable e) {
- log.error(e);
+ try {
+ AxisEngine engine = new AxisEngine(configurationContext);
+ if (msgContext != null) {
+ if (out == null) {
+ out = new SimpleHTTPOutputStream(socket.getOutputStream(), false);
+ }
+ msgContext.setProperty(MessageContext.TRANSPORT_OUT, out);
+ engine.handleFault(msgContext, e);
+ }
+ } catch (Exception e1) {
+ log.error(e1);
+ e1.printStackTrace();
+ }
e.printStackTrace();
} finally {
if (socket != null) {
- try {
- this.socket.close();
+ try {
+ this.socket.close();
} catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
+ log.error(e1);
}
}
}
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java?rev=202479&r1=202478&r2=202479&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/mail/MailWorker.java Wed Jun 29 21:34:42 2005
@@ -118,15 +118,7 @@
engine.receive(msgContext);
} catch (Exception e) {
e.printStackTrace();
- AxisFault af;
- if (e instanceof AxisFault) {
- af = (AxisFault) e;
- //log.debug(Messages.getMessage("serverFault00"), af);
- // CT 07-Feb-2005
- log.debug("Error occured while trying to process the mail.", af);
- } else {
- af = AxisFault.makeFault(e);
- }
+ log.error(e);
}
/*
Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/tcp/TCPWorker.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/tcp/TCPWorker.java?rev=202479&r1=202478&r2=202479&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/tcp/TCPWorker.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/tcp/TCPWorker.java Wed Jun 29 21:34:42 2005
@@ -45,18 +45,19 @@
private ConfigurationContext configurationContext;
private Socket socket;
- public TCPWorker(ConfigurationContext configurationContext,Socket socket){
+ public TCPWorker(ConfigurationContext configurationContext, Socket socket) {
this.configurationContext = configurationContext;
this.socket = socket;
- }
+ }
public void doWork() {
+ MessageContext msgContext = null;
try {
Reader in = new InputStreamReader(socket.getInputStream());
TransportOutDescription transportOut =
configurationContext.getAxisConfiguration().getTransportOut(
new QName(Constants.TRANSPORT_TCP));
- MessageContext msgContext =
+ msgContext =
new MessageContext(
configurationContext,
configurationContext.getAxisConfiguration().getTransportIn(
@@ -68,8 +69,7 @@
AxisEngine engine = new AxisEngine(configurationContext);
try {
- XMLStreamReader xmlreader =
- XMLInputFactory.newInstance().createXMLStreamReader(in);
+ XMLStreamReader xmlreader = XMLInputFactory.newInstance().createXMLStreamReader(in);
StAXBuilder builder = new StAXSOAPModelBuilder(xmlreader);
msgContext.setEnvelope((SOAPEnvelope) builder.getDocumentElement());
} catch (Exception e) {
@@ -78,12 +78,21 @@
engine.receive(msgContext);
} catch (Throwable e) {
- log.error(e);
- e.printStackTrace();
+ try {
+ AxisEngine engine = new AxisEngine(configurationContext);
+ if (msgContext != null) {
+ msgContext.setProperty(MessageContext.TRANSPORT_OUT, socket.getOutputStream());
+ engine.handleFault(msgContext, e);
+ }
+ } catch (Exception e1) {
+ log.error(e);
+ e.printStackTrace();
+ }
+
} finally {
if (socket != null) {
- try {
- this.socket.close();
+ try {
+ this.socket.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();