Hi - yes, I'll update once it's done
Cheers. Sergey
On 15/05/13 14:51, Penmatsa, Vinay wrote:
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