[ 
https://issues.apache.org/jira/browse/CXF-8554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17366664#comment-17366664
 ] 

Freeman Yue Fang commented on CXF-8554:
---------------------------------------

Hi [~henriENEE],

Thanks for the clarification!

I don't think this is something should be fixed in CXF. 

IIUC, In your scenario you don't consume the attachment stream at the cxf 
server side, instead you pass it along the AMQ queue and consume it later on, 
in which case the conversation between cxf client and server are done, hence 
the stream is closed. I think at your cxf server side, you need to consume the 
attachment stream and cache it(probably by a server side interceptor), then 
send it to the AMQ queue.

Best Regards
Freeman

> org.apache.cxf.jaxrs.ext.MessageContextImpl.createAttachments first 
> attachment input stream is null
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-8554
>                 URL: https://issues.apache.org/jira/browse/CXF-8554
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.3.6
>            Reporter: Henri ENEE
>            Priority: Blocker
>
> I need to get the attachments map, but the first attachment is still empty. 
> I think the issue comes from the method 
> org.apache.cxf.jaxrs.ext.MessageContextImpl.createAttachments line 292
> The first attachment is loaded with the following method 
> "inMessage.getContent(InputStream.class)"
> but the InputStream is not buffered and so I think when i want to read this 
> value later in my code, the stream is closed and I get an empty string.
>  
> {code:java}
> @POST
> @Path("")
> @Consumes(MediaType.MULTIPART_FORM_DATA)
> @Description("Create a task")
> public void createTask(
>       @Multipart(value = "title", type = "text/plain", required = false) 
> final String title,
>       @Multipart(value = "description", type = "text/plain", required = 
> false) final String description,
>       @javax.ws.rs.core.Context final MessageContext mc) throws 
> MatrixException {
>       /* param well filled */
>       System.out.println("title: " + title); 
>       // >title: myTitle
>       System.out.println("description: " + description); 
>       // >description: myDescription
>       /* first attachment of attachment map is empty */
>       final MultivaluedMap<String, String> attachmentMap = 
> AttachmentUtils.populateFormMap(mc);
>       System.out.println("The set is: " + attachmentMap.entrySet()); 
>       // >The set is: [title=[], description=[myDescription]]
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to