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
