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

Sergey Beryozkin commented on CXF-3399:
---------------------------------------

Hi Avish

Many thanks for looking into this issue and finding the solution. Let me know 
please if you have any comments re the way the Multipart-related code can be 
improved for the cases like yours be easier to deal with...

Cheers, Sergey


> When using ResponseBuilder to create Response of multiparts, the boundary 
> attribute in the Content-Type Header is missing
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-3399
>                 URL: https://issues.apache.org/jira/browse/CXF-3399
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.3.3
>         Environment: XP 2002 SP-3, JDK 1.6.0.17, cxf-2.3.3, 
>            Reporter: Avshalom Yeshurun
>              Labels: Boundary, Content-Type, ResponseBuilder
>   Original Estimate: 672h
>  Remaining Estimate: 672h
>
> Hello,
> We have implemented the following method while the output of the Response 
> should be a multipart message.
>     @POST
>     @Path("{destinationAddress}/messages/payloads")
>     @Consumes("application/xml")
>     @Produces({"multipart/related", "multipart/mixed", 
> "multipart/form-data"})    
>     public Response postMailboxMessagesPayloadRequest(@Context 
> HttpServletRequest request,
>                                                  
> @PathParam("destinationAddress") String destinationAddress,
>                                                  @Context ServletContext 
> servletContext,
>                                                  
> JAXBElement<MailboxMessagesPayload> jAXBElement) {
>               try{
>                               List<Attachment> attachments = 
> ((MultipartBody)mwMailboxMessagesPayloadResponse.getBody()).getAllAttachments();
>                               MultipartBody multipartBody = new 
> MultipartBody(attachments);
>                               ResponseBuilder responseBuilder = 
> Response.status(HttpURLConnection.HTTP_OK);
>                               responseBuilder.type(multipartBody.getType()
>                               responseBuilder.entity(multipartBody);
>                               Response response = responseBuilder.build();
>                               return response;   
>               }
>               catch(Exception e){
>               }
> The thing is that no matter what we do, we can not have the 'boundary' which 
> is determined by the CXF engine to appear in the Content-Type on the main 
> header.
> As a result no Client will be able to parse the returned message.
> If we try to manually set the Content-Type header while giving it our own 
> 'boundary', the result is that a different boundary is generated for the 
> actual message, while the boundary we set is not the same.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to