On Wednesday 24 November 2010 10:39:26 am hsemar wrote:
> How do I handle the special characters in web service request
> 
> I have a web service method and here is the sample request
> 
> <request>
>      <id>1<id>
>       <desc>this is desc of
> <itemid>1</itemid><itemname>ipod</itemname></desc>
>        <category>2</category>
> </request>
> 
> desc element type is string in my schema file.
> 
> When I create client stub and test this, the < and > characters inside
> <desc> element are converted into ;lt and ;gt respectively and everything
> works fine.
> 
> But when I test this same service using SoapUI, the charatcters are not
> being converted and I get unmarsshalling error which is fair.
> 
> So, now how do I make sure the data inside the <desc> element is not
> processed ? Do I need to write a handler and acheive this in the server
> side?
> 
> Is there anyway that we can say this element should be wrapped with CDATA ?
> I know it is not possible in the XSD schema. I'm mostly looking for a
> server side (web service level not at the client level) solution
> 
> Also, I would like to remove some set of special characters from the soap
> request before the request is used inside the web service method..any idea?
> 
> I would like to get your valuable suggestions on this.

JAXB pretty much never writes out CDATA sections.   The only way to really do 
it is to write an interceptor that will take the XMLStreamWriter and wrapper 
it with a new XMLStreamWriter that would do some processing in the 
writeCharacters calls.   It could delegate down into writeCDATA instead of 
writeCharacters or similar.


-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to