[ https://issues.apache.org/jira/browse/CXF-5832?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14050672#comment-14050672 ]
Daniel Kulp commented on CXF-5832: ---------------------------------- I'm really not expecting this to work. The OUTBOUND_MESSAGE_ATTACHMENTS is really a temporary wrapper around the internal List<Attachment> that is only valid for the scope of the invoke method. Once that returns, it's removed. HOWEVER, if you do something like: {code:java} //force the runtime to create the response message context.get(OUTBOUND_MESSAGE_ATTACHMENTS); //Get the outbound message created above Message m = PhaseInterceptorChain.getCurrentMessage().getExchange().getOutMessage(); //get or create the List<Attachments> List<Attachment> attachments = (List)m.get(Message.ATTACHMENTS); if (attachments == null) { attachments = new ArrayList<Attachment>(); m.put(Message.ATTACHMENTS, attachments) } marshaller.setAttachmentMarshaller(new org.apache.cxf.jaxb.attachment.JAXBAttachmentMarshaller(attachments, threshold)); return new JAXBSource(marshaller, obj); {code} then I believe it would work as it would use the same internal structures we use and would survive outside the scope of the invoke method. > JAX-WS Provider returning JAXBSource with attachment > ---------------------------------------------------- > > Key: CXF-5832 > URL: https://issues.apache.org/jira/browse/CXF-5832 > Project: CXF > Issue Type: Improvement > Components: Bus, Core, JAX-WS Runtime > Affects Versions: 3.0.0 > Reporter: Zsolt Szloboda > Priority: Minor > > I am trying to return a JAXBSource payload from a JAX-WS Provider; > the JAXBSource's Marshaller has a custom AttachmentMarshaller > that puts the attachments into the MessageContext's > OUTBOUND_MESSAGE_ATTACHMENTS Map > the problem is that the attachments are not included in the response > multipart SOAP message > however, if I transform the same JAXBSource result payload > into a DOMSource, and return this DOMSource from the Provider#invoke() > method, > then the attachments are included in the response multipart SOAP message! > I think the problem is that > when I return the JAXBSource > the attachments are added "too late" > (when the JAXBSource is processed by the CXF runtime, outside of the > Provider#invoke() method) > to the MessageContext > am I right, if I think that this means > that CXF currently does not support > JAXBSource payload results *with attachments*? > which means that we have to build an unnecessary DOM tree in these cases... -- This message was sent by Atlassian JIRA (v6.2#6252)