Hi Sergey,
Thanks. Would you fix this in 2.6.x?

-Vinay

-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]] 
Sent: Tuesday, May 14, 2013 3:58 PM
To: [email protected]
Subject: Re: JAX-RS XmlAttachmentRef

Hi Vinay

Thanks for making it work, comments below

On 14/05/13 20:24, Penmatsa, Vinay wrote:
> Sorry, I keep answering my own mail.
>
> What I did is override JAXBElementProvider with an implementation of 
> addAttachmentMarshaller() using 
> org.apache.cxf.jaxb.attachment.JAXBAttachmentMarshaller instead of the 
> default org.apache.cxf.jaxrs.provider.JAXBAttachmentMarshaller. That seems to 
> solve the problem.
>
> The response looks like:
> =============================
> --uuid:f118c4d3-aa61-473c-8c93-0a3101e7e878
> Content-Type: application/xml
> Content-Transfer-Encoding: binary
> Content-ID:<ma>
>
> <?xml version="1.0" encoding="UTF-8" 
> standalone="yes"?><Customer><email>[email protected]</email></Customer>
>
> --uuid:f118c4d3-aa61-473c-8c93-0a3101e7e878
> Content-Type: application/octet-stream
> Content-Transfer-Encoding: binary
> Content-ID:<[email protected]>
> .....
> .....
> ============================
>
>
> Does this seem correct in terms of how swaref should work? (email field in 
> the root attachment)
> What's the reason org.apache.cxf.jaxrs.provider.JAXBAttachmentMarshaller does 
> not implement addSwaRefAttachment()?
>
I've copied JAXBAttachmentMarshaller from the WS frontend to get XOP 
attachments supported with XOP being the possibility outside of the WS 
scope.
I left out addSwaRefAttachment as I did not know it would be required to 
get XmlAttachmentRef supported, thought it was only needed for SOAP MTOM 
- I guess I'll copy the relevant code from the original
as well.

Re List<DataHandler>, is it in context of XOP as well ? If yes then I 
guess it just should work, if it is non XOP multipart payloads, then it 
should work, we have a pretty extensive support for HTTP multiparts, see

http://cxf.apache.org/docs/jax-rs-multiparts.html

Thanks
Sergey




> -Vinay
>
>
> -----Original Message-----
> From: Penmatsa, Vinay [mailto:[email protected]]
> Sent: Tuesday, May 14, 2013 1:46 PM
> To: [email protected]
> Subject: RE: JAX-RS XmlAttachmentRef
>
> Oh I see...MTOM is enabled for @XMLElement. That's why it works.
> Is swaref with @XMLAttachmentRef not supported?
>
>
>
> -----Original Message-----
> From: Penmatsa, Vinay [mailto:[email protected]]
> Sent: Tuesday, May 14, 2013 12:49 PM
> To: [email protected]
> Subject: JAX-RS XmlAttachmentRef
>
> Hi
>
> Using CXF 2.6.1,
>
>       @XmlAttachmentRef
>       private DataHandler email;
>
> produces the following error:
> Caused by: java.lang.UnsupportedOperationException
>       at 
> org.apache.cxf.jaxrs.provider.JAXBAttachmentMarshaller.addSwaRefAttachment(JAXBAttachmentMarshaller.java:73)
>       at 
> com.sun.xml.bind.v2.runtime.SwaRefAdapter.marshal(SwaRefAdapter.java:84)
>       at 
> com.sun.xml.bind.v2.runtime.SwaRefAdapter.marshal(SwaRefAdapter.java:69)
>       at 
> com.sun.xml.bind.v2.runtime.reflect.AdaptedAccessor.get(AdaptedAccessor.java:76)
>       ... 42 more
>
>
> If I do this,
>
>   @XmlElement
>   private DataHandler email;
>
> it seems to work fine. There's a org.apache.cxf.jaxb.attachment. 
> JAXBAttachmentMarshaller that implements the addSwaRefAttachment() method.
> Somewhat confused what's happening.
>
> Also, I need to support a list of attachments like say  List<DataHandler>. 
> Does that work?
>
> Thanks,
> Vinay
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to