You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sc...@apache.org on 2009/08/26 00:17:16 UTC
svn commit: r807837 -
/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
Author: scheu
Date: Tue Aug 25 22:17:15 2009
New Revision: 807837
URL: http://svn.apache.org/viewvc?rev=807837&view=rev
Log:
AXIS2-4474
Contributor:Rich Scheuerle
Detect the presence of a SOAP:Fault in the Provider's response.
If detected, a Fault response message context is built (which will respect the settings of the wsa FaultTo address)
Modified:
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java?rev=807837&r1=807836&r2=807837&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java Tue Aug 25 22:17:15 2009
@@ -339,6 +339,14 @@
return requestParamValue;
}
+ /**
+ * Create a MessageContext for the response. This could be a normal response
+ * or a fault response depending on the characteristics of output
+ * @param request MessageContext
+ * @param input[] input Objects
+ * @param output Object representing output of Provider
+ * @return MessageContext for normal or fault path
+ */
public MessageContext createResponse(MessageContext request, Object[] input, Object output) {
if (log.isDebugEnabled()) {
log.debug("Start createResponse");
@@ -357,9 +365,6 @@
throw ExceptionFactory.makeWebServiceException(t);
}
- if (log.isDebugEnabled()) {
- log.debug("Response message is created.");
- }
MessageContext response = null;
try {
@@ -368,8 +373,17 @@
m.setMTOMEnabled(true);
}
-
- response = MessageContextUtils.createResponseMessageContext(request);
+ if (!m.isFault()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Non-Fault Response MessageContext is created.");
+ }
+ response = MessageContextUtils.createResponseMessageContext(request);
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Fault Response MessageContext is created.");
+ }
+ response = MessageContextUtils.createFaultMessageContext(request);
+ }
initMessageContext(response, m, output);
} catch (RuntimeException e) {
if (log.isDebugEnabled()) {