Ok, that seems to be a non-issue. Something I did wrong. Pls ignore. -----Original Message----- From: Penmatsa, Vinay [mailto:[email protected]] Sent: Wednesday, May 15, 2013 12:05 PM To: [email protected] Subject: RE: JAX-RS XmlAttachmentRef
Just one more thing... There seems to be a mismatch with the content id representation The org.apache.cxf.jaxb.attachment.JAXBAttachmentMarshaller.addSwaRefAttachment() doesn't seem to add "cid:" prefix while marshalling. And during un-marshalling request, the org.apache.cxf.attachment.AttachmentUtil.getAttachmentDataSource() seems to look for this prefix while resolving related, mixed type attachments. -Vinay -----Original Message----- From: Sergey Beryozkin [mailto:[email protected]] Sent: Wednesday, May 15, 2013 11:45 AM To: [email protected] Subject: Re: JAX-RS XmlAttachmentRef 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
