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

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

Reply via email to