You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2003/05/07 15:49:25 UTC
cvs commit: xml-axis/java/test/saaj TestHeaders.java
dims 2003/05/07 06:49:25
Modified: java/src/org/apache/axis/message MessageElement.java
java/test/saaj TestHeaders.java
Log:
Fix and test case for Bug 19728 - [SAAJ] Newly added SOAP Headers are not serialized
Notes:
The recorder was kicking in...set the dirty flag to indicate that we should not use the recorded information since the envelope contents have changed.
Revision Changes Path
1.152 +1 -0 xml-axis/java/src/org/apache/axis/message/MessageElement.java
Index: MessageElement.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageElement.java,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -r1.151 -r1.152
--- MessageElement.java 22 Apr 2003 19:35:15 -0000 1.151
+++ MessageElement.java 7 May 2003 13:49:24 -0000 1.152
@@ -661,6 +661,7 @@
public void setEnvelope(SOAPEnvelope env)
{
+ env.setDirty(true);
message = env;
}
public SOAPEnvelope getEnvelope()
1.2 +39 -0 xml-axis/java/test/saaj/TestHeaders.java
Index: TestHeaders.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/saaj/TestHeaders.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestHeaders.java 20 Mar 2003 13:30:45 -0000 1.1
+++ TestHeaders.java 7 May 2003 13:49:25 -0000 1.2
@@ -1,9 +1,13 @@
package test.saaj;
import javax.xml.soap.MessageFactory;
+import javax.xml.soap.MimeHeaders;
+import javax.xml.soap.Name;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
import javax.xml.soap.SOAPMessage;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
public class TestHeaders extends junit.framework.TestCase {
@@ -21,5 +25,40 @@
soapMessage.writeTo(baos);
String xml = new String(baos.toByteArray());
assertTrue(xml.indexOf("ebxmlms") != -1);
+ }
+
+
+ private final String actor = "ACTOR#1";
+ private final String localName = "Local1";
+ private final String namespace = "http://ws.apache.org";
+ private final String prefix = "P1";
+
+ String xmlString =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\n" +
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n" +
+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
+ " <soapenv:Body>\n" +
+ " <shw:Address xmlns:shw=\"http://www.jcommerce.net/soap/ns/SOAPHelloWorld\">\n" +
+ " <shw:City>GENT</shw:City>\n" +
+ " </shw:Address>\n" +
+ " </soapenv:Body>\n" +
+ "</soapenv:Envelope>";
+
+ public void testAddingHeaderElements2() throws Exception {
+ MessageFactory mf = MessageFactory.newInstance();
+ SOAPMessage soapMessage = mf.createMessage(new MimeHeaders(), new ByteArrayInputStream(xmlString.getBytes()));
+ SOAPEnvelope soapEnv = soapMessage.getSOAPPart().getEnvelope();
+ SOAPHeader header = soapEnv.getHeader();
+
+ Name headerName = soapEnv.createName(localName, prefix, prefix);
+ SOAPHeaderElement he = header.addHeaderElement(headerName);
+ he.setActor(actor);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ soapMessage.writeTo(baos);
+
+ String xml = new String(baos.toByteArray());
+ assertTrue(xml.indexOf(localName) != -1);
}
}