Hi Stephan
On 11/12/12 13:17, Klevenz, Stephan wrote:
Dear CXF Gurus and Community!
I want to consume a multipart/mixed payload via a stream like shown in the
example code below. Unfortunately it seems that injected stream is already
closed and can not be used anymore. Debugging CXF shows that a
MailAttachmentInterceptor has taken the stream before it is injected. Is there
an option to avoid that behavior?
Thanks in advance.
Greetings,
Stephan
@POST
@Consumes("multipart/mixed")
@Produces("multipart/mixed")
public StreamingOutput createItem(InputStream requestBodyStream) {
/* read the requestBodyStream like a normal input stream */
return new StreamingOutput() {
public void write(OutputStream output) throws IOException,
WebApplicationException {
byte[] out = /* get some bytes to write */
output.write(out);
}
})
}
Can you replace the above with
public StreamingOutput createItem(MultipartBody body) {
// assuming a single attachment:
InputStream is = body.getRootAttachment().getObject(InputStream.class);
//or
InputStream is = body.getAttachmentObject("partId", InputStream.class);
}
Quite a few other options are also possible, please see
http://cxf.apache.org/docs/jax-rs-multiparts.html
Let me know please if it works for you
HTH, Sergey