Author: thomas.diesler(a)jboss.com
Date: 2007-04-11 10:18:01 -0400 (Wed, 11 Apr 2007)
New Revision: 2798
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPPartImpl.java
Log:
Fix SOAPPart.setContent() with StreamSource based on Reader
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java
===================================================================
---
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java 2007-04-11
14:11:16 UTC (rev 2797)
+++
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/DispatchImpl.java 2007-04-11
14:18:01 UTC (rev 2798)
@@ -274,6 +274,11 @@
public AsyncRunnable(ResponseImpl response, AsyncHandler handler, Object payload)
{
+ if (response == null)
+ throw new IllegalArgumentException("Async response cannot be
null");
+ if (payload == null)
+ throw new IllegalArgumentException("Async payload cannot be
null");
+
this.response = response;
this.handler = handler;
this.payload = payload;
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java 2007-04-11
14:11:16 UTC (rev 2797)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java 2007-04-11
14:18:01 UTC (rev 2798)
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.io.InputStream;
+import java.io.Reader;
import java.util.Iterator;
import javax.xml.namespace.QName;
@@ -43,6 +44,7 @@
import org.jboss.ws.core.utils.DOMUtils;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
/**
* A SOAPEnvelope builder for JAXRPC based on DOM
@@ -83,6 +85,26 @@
return build(soapMessage, domEnv);
}
+ public SOAPEnvelope build(SOAPMessage soapMessage, Reader reader, boolean
ignoreParseError) throws IOException, SOAPException
+ {
+ // Parse the XML input stream
+ Element domEnv = null;
+ try
+ {
+ domEnv = DOMUtils.parse(new InputSource(reader));
+ }
+ catch (IOException ex)
+ {
+ if (ignoreParseError)
+ {
+ return null;
+ }
+ throw ex;
+ }
+
+ return build(soapMessage, domEnv);
+ }
+
public SOAPEnvelope build(SOAPMessage soapMessage, Element domEnv) throws
SOAPException
{
String envNS = domEnv.getNamespaceURI();
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPPartImpl.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPPartImpl.java 2007-04-11
14:11:16 UTC (rev 2797)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPPartImpl.java 2007-04-11
14:18:01 UTC (rev 2798)
@@ -24,11 +24,18 @@
// $Id$
import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import javax.xml.soap.*;
+import javax.xml.soap.MimeHeaders;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPPart;
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
@@ -174,7 +181,12 @@
{
StreamSource streamSource = (StreamSource)source;
EnvelopeBuilderDOM envBuilder = new EnvelopeBuilderDOM(Style.DOCUMENT);
- envBuilder.build(soapMessage, streamSource.getInputStream(), false);
+ InputStream stream = streamSource.getInputStream();
+ Reader reader = streamSource.getReader();
+ if (stream != null)
+ envBuilder.build(soapMessage, stream, false);
+ else if (reader != null)
+ envBuilder.build(soapMessage, reader, false);
}
catch (IOException e)
{
Show replies by date