Author: heiko.braun(a)jboss.com
Date: 2007-01-08 08:30:47 -0500 (Mon, 08 Jan 2007)
New Revision: 1861
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonClient.java
trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/CallImpl.java
trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java
Log:
clear response message context at pivot
Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonClient.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonClient.java 2007-01-08
13:03:34 UTC (rev 1860)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonClient.java 2007-01-08
13:30:47 UTC (rev 1861)
@@ -46,6 +46,7 @@
import org.jboss.ws.core.soap.SOAPConnectionImpl;
import org.jboss.ws.core.soap.UnboundHeader;
import org.jboss.ws.core.utils.HolderUtils;
+import org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS;
import org.jboss.ws.extensions.addressing.AddressingConstantsImpl;
import org.jboss.ws.metadata.umdm.ClientEndpointMetaData;
import org.jboss.ws.metadata.umdm.EndpointMetaData;
@@ -291,6 +292,9 @@
resMessage = new SOAPConnectionImpl().call(reqMessage, epInfo);
}
+ // at pivot the message context might be replaced
+ msgContext = processPivot(msgContext);
+
// Associate current message with message context
msgContext.setSOAPMessage(resMessage);
}
@@ -299,7 +303,7 @@
// Get the return object
Object retObj = null;
- if (oneway == false)
+ if (oneway == false && handlerPass)
{
// Call the response handlers
handlerPass = callResponseHandlerChain(portName, HandlerType.POST);
@@ -340,6 +344,8 @@
}
}
+ protected abstract CommonMessageContext processPivot(CommonMessageContext
requestContext);
+
protected CommonBindingProvider getCommonBindingProvider()
{
if (bindingProvider == null)
Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/CallImpl.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/CallImpl.java 2007-01-08
13:03:34 UTC (rev 1860)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/CallImpl.java 2007-01-08
13:30:47 UTC (rev 1861)
@@ -47,6 +47,7 @@
import org.jboss.logging.Logger;
import org.jboss.ws.Constants;
import org.jboss.ws.core.CommonClient;
+import org.jboss.ws.core.CommonMessageContext;
import org.jboss.ws.core.jaxrpc.binding.JBossXBDeserializerFactory;
import org.jboss.ws.core.jaxrpc.binding.JBossXBSerializerFactory;
import org.jboss.ws.core.jaxrpc.handler.HandlerChainBaseImpl;
@@ -346,6 +347,11 @@
return invokeInternal(operationName, inputParams, unboundHeaders, false);
}
+ protected CommonMessageContext processPivot(CommonMessageContext requestContext) {
+ log.debug("Begin response processing");
+ return requestContext;
+ }
+
/** Returns a List values for the output parameters of the last invoked operation.
*
* @return java.util.List Values for the output parameters. An empty List is returned
if there are no output values.
Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java
===================================================================
---
trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java 2007-01-08
13:03:34 UTC (rev 1860)
+++
trunk/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/client/ClientImpl.java 2007-01-08
13:30:47 UTC (rev 1861)
@@ -51,9 +51,11 @@
import org.jboss.ws.core.jaxws.handler.MessageContextJAXWS;
import org.jboss.ws.core.jaxws.handler.PortInfoImpl;
import org.jboss.ws.core.jaxws.handler.SOAPMessageContextJAXWS;
+import org.jboss.ws.core.jaxws.StubExt;
import org.jboss.ws.core.soap.MessageContextAssociation;
import org.jboss.ws.metadata.umdm.EndpointMetaData;
import org.jboss.ws.metadata.umdm.OperationMetaData;
+import org.jboss.ws.metadata.umdm.ServiceMetaData;
import org.jboss.ws.metadata.umdm.HandlerMetaData.HandlerType;
/**
@@ -62,7 +64,7 @@
* @author Thomas.Diesler(a)jboss.org
* @since 04-Jul-2006
*/
-public class ClientImpl extends CommonClient implements BindingProvider
+public class ClientImpl extends CommonClient implements BindingProvider, StubExt
{
// provide logging
private static Logger log = Logger.getLogger(ClientImpl.class);
@@ -161,6 +163,16 @@
}
}
+ protected CommonMessageContext processPivot(CommonMessageContext requestContext) {
+ log.debug("Begin response processing");
+
+ SOAPMessageContextJAXWS responseContext = new
SOAPMessageContextJAXWS(requestContext);
+ responseContext.setSOAPMessage(null);
+ responseContext.clear(); // clear message context properties
+ MessageContextAssociation.pushMessageContext(responseContext);
+ return responseContext;
+ }
+
/**
* 6.7 Conformance (One-way operations): When sending a one-way message,
implementations
* a WebServiceException if any error is detected when sending the message.
Show replies by date