dims 2002/09/25 11:21:28
Modified: java/src/org/apache/axis/transport/http AxisServlet.java
Log:
Calling getContentType immediately shakes out serialization errors....
Fix for 10585 - No serializer error is generated
Revision Changes Path
1.144 +9 -4
xml-axis/java/src/org/apache/axis/transport/http/AxisServlet.java
Index: AxisServlet.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/transport/http/AxisServlet.java,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -r1.143 -r1.144
--- AxisServlet.java 18 Sep 2002 16:10:30 -0000 1.143
+++ AxisServlet.java 25 Sep 2002 18:21:28 -0000 1.144
@@ -619,6 +619,7 @@
}
Message responseMsg = null;
+ String contentType = null;
try {
AxisEngine engine = getEngine();
@@ -694,6 +695,7 @@
}
responseMsg = msgContext.getResponseMessage();
+ contentType =
responseMsg.getContentType(msgContext.getSOAPConstants());
} catch (AxisFault e) {
log.error(Messages.getMessage("exception00"), e);
// It's been suggested that a lack of SOAPAction
@@ -704,14 +706,17 @@
// TODO: less generic realm choice?
res.setStatus(status);
responseMsg = new Message(e);
+ contentType =
responseMsg.getContentType(msgContext.getSOAPConstants());
} catch (Exception e) {
log.error(Messages.getMessage("exception00"), e);
res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
responseMsg = new Message(AxisFault.makeFault(e));
+ contentType =
responseMsg.getContentType(msgContext.getSOAPConstants());
}
} catch (AxisFault fault) {
log.error(Messages.getMessage("axisFault00"), fault);
responseMsg = new Message(fault);
+ contentType =
responseMsg.getContentType(msgContext.getSOAPConstants());
}
if( tlog.isDebugEnabled() ) {
t3=System.currentTimeMillis();
@@ -720,7 +725,7 @@
/* Send response back along the wire... */
/***********************************/
if (responseMsg != null)
- sendResponse(getProtocolVersion(req), msgContext.getSOAPConstants(),
+ sendResponse(getProtocolVersion(req), contentType,
res, responseMsg);
if (isDebug) {
@@ -767,7 +772,7 @@
* @throws IOException if the response stream can not be written to
*/
private void sendResponse(final String clientVersion,
- SOAPConstants soapConstants,
+ String contentType,
HttpServletResponse res, Message responseMsg)
throws AxisFault, IOException
{
@@ -780,13 +785,13 @@
} else {
if(isDebug) {
log.debug("Returned Content-Type:" +
- responseMsg.getContentType(soapConstants));
+ contentType);
// log.debug("Returned Content-Length:" +
// responseMsg.getContentLength());
}
try {
- res.setContentType(responseMsg.getContentType(soapConstants));
+ res.setContentType(contentType);
/* My understand of Content-Length
* HTTP 1.0