javaxmlsoapenvelopeenvelope-schema

Writing an XML SOAP message in Java


I have the following method that accepts xml and I do some data feeding with the content. I am supposed to return a SOAP message as well, something along these lines:

<ow-e:Envelope revision='2.0' xmlns:ow-e='http://www.url.com/test-envelope'>
   <ow-e:Header>
      <ow-e:Properties>
         <ow-e:SentAt>2004-12-14T13:54:36</ow-e:SentAt>
         <ow-e:Topic>SOME_STRING</ow-e:Topic>
      </ow-e:Properties>
   </ow-e:Header>
</ow-e:Envelope>

So right now what I am doing is the following:

String some_string = "qwe";
String response = "";

response = "<ow-e:Envelope revision='2.0' xmlns:ow-e='http://www.url.com/test-envelope'><ow-e:Header><ow-e:Properties><ow-e:SentAt>2004-12-14T13:54:36</ow-e:SentAt><ow-e:Topic>" + some_string + "</ow-e:Topic></ow-e:Properties></ow-e:Header></ow-e:Envelope>";

return response;

Which is absolutely terrible. Any idea how I can actually make it more bearable? Using a framework is not an option at the moment.

This is the first time I am dealing with SOAP messages/responses and it feels like hell coming from REST. I probably need to create some kind of hierarchy to populate the values correctly, but I am not sure how it can be done just by using Java without any frameworks.


Solution

  • You mentioned using frameworks is not an option, but something more lightweight may be available in your platform:

    ... the example you are showing isn't really valid SOAP message. SOAP is a protocol. You need to properly format it and use the right namespaces otherwise you are just returning some XML messages that look like SOAP, but aren't.