users@jersey.java.net

Re: [Jersey] Marshalling CDATA with JAXB

From: Paul Sandoz <Paul.Sandoz_at_Sun.COM>
Date: Mon, 10 Aug 2009 09:49:38 +0200

On Aug 10, 2009, at 7:31 AM, MS wrote:

> Felipe Gaścho schrieb:
>> https://jaxb.dev.java.net/faq/JaxbCDATASample.java
>>
> I am not sure how to integrate this approach in my Jersey application.
>
> Can I use a ContextResolver that provides the marshalled object? And
> if yes, what type should it return?
>

You can use a ContextResolver<Marshaller> to return an adapted
marshaler that uses XMLSerializer. You can use:

  http://java.sun.com/javase/6/docs/api/javax/xml/bind/helpers/AbstractMarshallerImpl.html

to help you implement the marshaller and you can override:

http://java.sun.com/javase/6/docs/api/javax/xml/bind/helpers/AbstractMarshallerImpl.html#marshal%28java.lang.Object,%20java.io.OutputStream%29

with functionality to create the XMLSerializer instance.

Paul.

> Or do I have to write a new MessageBodyWriter?
>
>> perhaps URL Decode works as well
>>
>> On Sun, Aug 9, 2009 at 10:01 PM, MS<da_bus_at_arcor.de> wrote:
>>
>>> Hi,
>>>
>>> I have another question related to JAXB and Jersey. I would like
>>> to return
>>> an XML representation that contains CDATA, but apparently JAXB
>>> can't deal
>>> with it correctly. There is a FAQ entry on the JAXB page:
>>> https://jaxb.dev.java.net/faq/index.html#marshalling_cdata
>>>
>>> The XML content in the http request looks like this:
>>> <myXml>
>>> <tagWithCdata><![CDATA[<test>123</test>]]></tagWithCdata>
>>> </myXml>
>>>
>>> The String "tagWithCdata" in the Java object like this:
>>> "<test>123</test>"
>>>
>>> And the marshalled XML in the http response like this:
>>> <myXml>
>>> <tagWithCdata>&lt;test&gt;123&lt;/test&gt;</tagWithCdata>
>>> </myXml>
>>>
>>> Does anyone have an idea what is the best way to get a response
>>> that looks
>>> like the request and includes CDATA?
>>>
>>> Thanks a lot!
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>
>>>
>>>
>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>