From 1705bb2b0002185c445ba7a784581467dc086cb6 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Wed, 14 Feb 2007 15:46:26 +0000 Subject: [PATCH] Fixed #SWS-87: AbstractSoapMessage.getPayloadSource returns null with Axis SAAJ --- .../ws/soap/saaj/Saaj11Implementation.java | 7 +++---- .../ws/soap/saaj/Saaj12Implementation.java | 7 +++---- .../ws/soap/saaj/Saaj13Implementation.java | 7 +++---- .../ws/soap/saaj/SaajImplementation.java | 3 +-- .../ws/soap/saaj/SaajSoapMessage.java | 1 + .../ws/soap/saaj/SaajSoapMessageFactory.java | 18 +++++++++++++----- 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java index 49968513..15bc4a32 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj11Implementation.java @@ -32,7 +32,6 @@ import javax.xml.soap.MimeHeader; import javax.xml.soap.MimeHeaders; import javax.xml.soap.Name; import javax.xml.soap.SOAPBody; -import javax.xml.soap.SOAPBodyElement; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPException; @@ -264,11 +263,11 @@ public class Saaj11Implementation implements SaajImplementation { return detail.getDetailEntries(); } - public SOAPBodyElement getFirstBodyElement(SOAPBody body) { + public SOAPElement getFirstBodyElement(SOAPBody body) { for (Iterator iterator = body.getChildElements(); iterator.hasNext();) { Object child = iterator.next(); - if (child instanceof SOAPBodyElement) { - return (SOAPBodyElement) child; + if (child instanceof SOAPElement) { + return (SOAPElement) child; } } return null; diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Implementation.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Implementation.java index 136187ae..a1e191b7 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Implementation.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Implementation.java @@ -30,7 +30,6 @@ import javax.xml.soap.MimeHeader; import javax.xml.soap.MimeHeaders; import javax.xml.soap.Name; import javax.xml.soap.SOAPBody; -import javax.xml.soap.SOAPBodyElement; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPException; @@ -180,11 +179,11 @@ public class Saaj12Implementation implements SaajImplementation { return detail.getDetailEntries(); } - public SOAPBodyElement getFirstBodyElement(SOAPBody body) { + public SOAPElement getFirstBodyElement(SOAPBody body) { for (Iterator iterator = body.getChildElements(); iterator.hasNext();) { Object child = iterator.next(); - if (child instanceof SOAPBodyElement) { - return (SOAPBodyElement) child; + if (child instanceof SOAPElement) { + return (SOAPElement) child; } } return null; diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Implementation.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Implementation.java index 815ba51a..172c0b2d 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Implementation.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Implementation.java @@ -29,7 +29,6 @@ import javax.xml.soap.DetailEntry; import javax.xml.soap.MimeHeader; import javax.xml.soap.MimeHeaders; import javax.xml.soap.SOAPBody; -import javax.xml.soap.SOAPBodyElement; import javax.xml.soap.SOAPConstants; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; @@ -217,11 +216,11 @@ public class Saaj13Implementation implements SaajImplementation { return detail.getDetailEntries(); } - public SOAPBodyElement getFirstBodyElement(SOAPBody body) { + public SOAPElement getFirstBodyElement(SOAPBody body) { for (Iterator iterator = body.getChildElements(); iterator.hasNext();) { Object child = iterator.next(); - if (child instanceof SOAPBodyElement) { - return (SOAPBodyElement) child; + if (child instanceof SOAPElement) { + return (SOAPElement) child; } } return null; diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajImplementation.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajImplementation.java index a8803891..7f344b41 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/SaajImplementation.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajImplementation.java @@ -27,7 +27,6 @@ import javax.xml.soap.Detail; import javax.xml.soap.DetailEntry; import javax.xml.soap.MimeHeaders; import javax.xml.soap.SOAPBody; -import javax.xml.soap.SOAPBodyElement; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPException; @@ -175,7 +174,7 @@ public interface SaajImplementation { /** * Returns the first child element of the given body. */ - SOAPBodyElement getFirstBodyElement(SOAPBody body); + SOAPElement getFirstBodyElement(SOAPBody body); /** * Removes the contents (i.e. children) of the element. diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java index fb42322e..172d8e85 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java @@ -105,6 +105,7 @@ public class SaajSoapMessage extends AbstractSoapMessage { public void writeTo(OutputStream outputStream) throws IOException { try { getImplementation().writeTo(getSaajMessage(), outputStream); + outputStream.flush(); } catch (SOAPException ex) { throw new SaajSoapMessageException("Could not write message to OutputStream: " + ex.getMessage(), ex); diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageFactory.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageFactory.java index 7b60fbc1..e2a8b1fc 100644 --- a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageFactory.java +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageFactory.java @@ -37,7 +37,7 @@ import org.springframework.ws.transport.TransportInputStream; /** * SAAJ-specific implementation of the {@link org.springframework.ws.WebServiceMessageFactory WebServiceMessageFactory}. - * This factory will use SAAJ 1.3 when found, or fall back to SAAJ 1.2. + * This factory will use SAAJ 1.3 when found, or fall back to SAAJ 1.2 or 1.1. * * @author Arjen Poutsma * @see org.springframework.ws.soap.saaj.SaajSoapMessage @@ -50,21 +50,29 @@ public class SaajSoapMessageFactory implements WebServiceMessageFactory, Initial private String messageFactoryProtocol; - /** Default, empty constructor. */ + /** + * Default, empty constructor. + */ public SaajSoapMessageFactory() { } - /** Constructor that takes a message factory as an argument. */ + /** + * Constructor that takes a message factory as an argument. + */ public SaajSoapMessageFactory(MessageFactory messageFactory) { this.messageFactory = messageFactory; } - /** Sets the SAAJ MessageFactory. */ + /** + * Sets the SAAJ MessageFactory. + */ public void setMessageFactory(MessageFactory messageFactory) { this.messageFactory = messageFactory; } - /** Returns the SAAJ MessageFactory used. */ + /** + * Returns the SAAJ MessageFactory used. + */ public MessageFactory getSaajMessageFactory() { return messageFactory; }