This commit is contained in:
Arjen Poutsma
2007-12-07 16:23:38 +00:00
parent 2defbcbd9e
commit d67bcedaef
2 changed files with 19 additions and 3 deletions

View File

@@ -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);
}

View File

@@ -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);