Tuesday, March 26, 2013

How to send CDATA inside your SOAP message payload

(Please note this a temporary workaround and this will be addressed properly in future releases)

If you need to send a SOAP message payload ever and if it resulted something like this.

<task:customerSchema><ext:value><maxStops>2</maxStops></ext:value></task:customerSchema>

Because by default, a StAX parser must be in non coalescing mode (It overrides the default settings mandated by the StAX specification) and as a side effect of that parser coaelsce CDATA sections. [1]
You need to add the XMLInputFactory.properties file with the following entry to CARBON_HOME/ (root) folder.


javax.xml.stream.isCoalescing=false

For more information
[1] http://people.apache.org/~veithen/axiom/userguide/ch04.html#factory.properties

[2] http://wso2.org/forum/thread/10891