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 ba...@apache.org on 2008/11/17 21:26:11 UTC

svn commit: r718364 - /webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java

Author: barrettj
Date: Mon Nov 17 12:26:11 2008
New Revision: 718364

URL: http://svn.apache.org/viewvc?rev=718364&view=rev
Log:
Add ability for Provider<OMElement> to return a fully constructed SOAPEnvelope and don't reparse it.

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=718364&r1=718363&r2=718364&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 Mon Nov 17 12:26:11 2008
@@ -52,6 +52,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.soap.SOAPEnvelope;
 
 import javax.activation.DataSource;
 import javax.xml.soap.SOAPMessage;
@@ -476,6 +477,13 @@
                         log.debug("Creating message from SOAPMessage");
                     }
                     message = msgFactory.createFrom((SOAPMessage)value);
+                } else if (value instanceof SOAPEnvelope) {
+                    // The value from the provider is already an SOAPEnvelope OMElement, so
+                    // it doesn't need to be parsed into one.
+                    if (log.isDebugEnabled()) {
+                        log.debug("Creating message from OMElement");
+                    }
+                    message = msgFactory.createFrom((SOAPEnvelope) value, protocol);
                 } else {
                     if (log.isDebugEnabled()) {
                         log.debug("Creating message using " + factory);