SWS-248
This commit is contained in:
@@ -26,13 +26,15 @@ import javax.xml.transform.dom.DOMResult;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.ws.pox.PoxMessage;
|
||||
import org.springframework.ws.transport.TransportConstants;
|
||||
import org.springframework.ws.transport.TransportOutputStream;
|
||||
import org.springframework.xml.namespace.QNameUtils;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* Implementation of the <code>PoxMessage</code> interface that is based on a DOM Document.
|
||||
@@ -69,6 +71,10 @@ public class DomPoxMessage implements PoxMessage {
|
||||
}
|
||||
|
||||
public Result getPayloadResult() {
|
||||
NodeList children = document.getChildNodes();
|
||||
for (int i = 0; i < children.getLength(); i++) {
|
||||
document.removeChild(children.item(i));
|
||||
}
|
||||
return new DOMResult(document);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,9 +23,10 @@ import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
|
||||
import org.custommonkey.xmlunit.XMLTestCase;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import org.springframework.xml.transform.StringResult;
|
||||
import org.springframework.xml.transform.StringSource;
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
public class DomPoxMessageTest extends XMLTestCase {
|
||||
|
||||
@@ -53,6 +54,15 @@ public class DomPoxMessageTest extends XMLTestCase {
|
||||
assertXMLEqual(content, stringResult.toString());
|
||||
}
|
||||
|
||||
public void testGetPayloadResultTwice() throws Exception {
|
||||
String content = "<element xmlns=\"http://www.springframework.org/spring-ws\" />";
|
||||
transformer.transform(new StringSource(content), message.getPayloadResult());
|
||||
transformer.transform(new StringSource(content), message.getPayloadResult());
|
||||
StringResult stringResult = new StringResult();
|
||||
transformer.transform(message.getPayloadSource(), stringResult);
|
||||
assertXMLEqual(content, stringResult.toString());
|
||||
}
|
||||
|
||||
public void testWriteTo() throws Exception {
|
||||
String content = "<root xmlns='http://www.springframework.org/spring-ws'>" + "<child/></root>";
|
||||
StringSource source = new StringSource(content);
|
||||
|
||||
Reference in New Issue
Block a user