Hi
On 20/12/12 09:13, Malisetti, Ramanjaneyulu wrote:
Hi,
             We have the following code which used to work with CXF 2.5.2  but 
getting the below exception with CXF 2.7.1
         Map<String, InputStream>  attachments = files;
             List<Attachment>  attachments = new ArrayList<Attachment>();

             /* First attachment is always the Response payload */
             Attachment respXMLPayloadAttachment = new Attachment("Response_XML_Payload", 
"application/xml",
                     responsePayload.getBytes());
             attachments.add(respXMLPayloadAttachment);

             Set<String>  attachmentFileNames = files.keySet();
             for (String fileName : attachmentFileNames) {
                 ContentDisposition cd = new 
ContentDisposition("attachment;filename=" + fileName);
                 attachments.add(new Attachment(fileName, files.get(fileName), 
cd));
             }
             return new MultipartBody(attachments);


we are getting response but status code is 500 because of the below exception


Yes, reproduced, there appears to be some regression at the IOUtils level to do with copying input streams. Workaround: remove ".getBytes()" or wrap into StringReader.

We'll get this fixed
Sergey

Response:
------------------------------
--uuid:32188b25-724d-400a-8ba4-a8c693874318
Content-Type: application/xml
Content-Transfer-Encoding: binary
Content-ID:<Response_XML_Payload>

Error serializing the response, please check the server logs, response class : 
MultipartBody.
--uuid:32188b25-724d-400a-8ba4-a8c693874318
Content-Type: application/xml
Content-Transfer-Encoding: binary
Content-ID:<console-output.txt>

<ns1:XMLFault xmlns:ns1="http://cxf.apache.org/bindings/xformat";><ns1:faultstring 
xmlns:ns1="http://cxf.apache.org/bindings/xformat";>java.lang.IllegalStateException: 
!empty</ns1:faultstring></ns1:XMLFault>
-------------------------------


Exception on Server side:

java.lang.IllegalStateException: !empty
                 at 
org.eclipse.jetty.server.AbstractHttpConnection$Output.sendContent(AbstractHttpConnection.java:1053)
                 at 
org.apache.cxf.transport.http_jetty.JettyHTTPDestination$JettyOutputStream.copyFrom(JettyHTTPDestination.java:405)
                 at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:102)
                 at 
org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.copyFrom(AbstractHTTPDestination.java:698)
                 at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:102)
                 at 
org.apache.cxf.helpers.IOUtils.copyAndCloseInput(IOUtils.java:110)
                 at 
org.apache.cxf.jaxrs.provider.BinaryDataProvider.copyInputToOutput(BinaryDataProvider.java:135)
                 at 
org.apache.cxf.jaxrs.provider.BinaryDataProvider.writeTo(BinaryDataProvider.java:104)
                 at 
org.apache.cxf.jaxrs.provider.MultipartProvider$MessageBodyWriterDataHandler.writeTo(MultipartProvider.java:456)
                 at 
org.apache.cxf.jaxrs.provider.MultipartProvider.writeTo(MultipartProvider.java:265)
                 at 
org.apache.cxf.jaxrs.utils.JAXRSUtils.writeMessageBody(JAXRSUtils.java:1216)
                 at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:259)
                 at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:155)
                 at 
org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:86)
                 at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
                 at 
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77)
                 at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
                 at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
                 at 
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:354)
                 at 
org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:318)
                 at 
org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)
                 at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1067)
                 at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1003)
                 at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
                 at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
                 at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
                 at org.eclipse.jetty.server.Server.handle(Server.java:350)
                 at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
                 at 
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:900)
                 at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:954)
                 at 
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:851)
                 at 
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
                 at 
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
                 at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:620)
                 at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)
                 at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)
                 at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)
                 at java.lang.Thread.run(Thread.java:722)
     2012-12-20 12:03:28,018 WARN  [qtp12593459-146] 
interceptor.JAXRSOutInterceptor -101-org.apache.cxf.bundle-2.7.1 - Error 
serializing the response, please check the server logs, response class : 
MultipartBody..

Regards
Raman



--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to