there are two to three solutions to this.
Quick and dirty solution.
Since most of the times the Soap Message contains the following structure.
<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
xml message
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Just build the xml by appending the message with Envelope and Body.
This will give the SoapMessage itself Use the Java 1.6 Api to sent it across. The message will be sent as is and the < won't be replaced with & lt;
Secondly solution. Build the document and encode the message in the document.
Then append the document to the Soap body.
This would build you a soap message which can be safely sent with out problems.
No Problems of < getting converted to & lt;
in fact you can minimize the above code. A lot is not needed.