I am calling a SOAP webservice with Spring-WS. The webservice in question requires me to pass some information in the SOAP header as shown here:
final String datPrefix = "dat";
final String datNamespaceUri = "UPRS/Services/IProviderDataManagement/Datatypes";
final String mesPrefix = "mes";
final String mesNamespaceUri = "UPRS/Services/IProviderDataManagement/Messages";
SoapEnvelope se = s.getEnvelope();
se.addNamespaceDeclaration(mesPrefix,
mesNamespaceUri);
se.addNamespaceDeclaration(datPrefix,
datNamespaceUri);
SoapMessage s = (SoapMessage) message;
Element root = new Element("requestContext", mesPrefix, mesNamespaceUri);
Element child = new Element("commandId", datPrefix, datNamespaceUri).addContent(guid);
root.addContent(child);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new JDOMSource(root), s.getSoapHeader().getResult());
It produced output
ba7b1e13-8a06-49b6-a264-fc0298f55f4f