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