After a lot of redesign now I got follewing exception:

javax.activation.UnsupportedDataTypeException: no object DCH for MIME type application/pdf

WARNING: Interceptor for has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not write attachments.
at org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInterceptor.handleMessage(AttachmentOutInterceptor.java:98) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:206) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193) at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:126) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:184) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:107)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:163) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type application/pdf at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:877)
        at javax.activation.DataHandler.writeTo(DataHandler.java:302)
at org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(AttachmentSerializer.java:234) at org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInterceptor.handleMessage(AttachmentOutInterceptor.java:96)
        ... 32 more

Any ideas, Alex

Am 2011-11-23 22:25, schrieb Daniel Kulp:
Any chance you can create a small sample test case showing the issue?   Not
really sure what would cause it.

That said, if you aren't using CXF 2.4.3 or newer, definitely upgrade.

Dan


On Wednesday, November 23, 2011 1:51:42 PM Alex Declent wrote:
I have developed a web-service which receives multiple attachments from
a remote web-service via an CXF JAXB client (the client is called from
the service), the attachment from the remote service are, one xml
document and an undefined number of pdf documents.

When I try to add the received attachments to my web-service response
the xml document is set and only n-1 data of the received pdf documents.

Logging:

      ---------------------------
      ID: 8
      Encoding: UTF-8
      Content-Type: multipart/related; type="application/xop+xml";
boundary="uuid:aeb23655-314b-4365-822c-f56f674059d8";
start="<[email protected]>"; start-info="text/xml"
      Headers: {}
      Payload:
      --uuid:aeb23655-314b-4365-822c-f56f674059d8
      Content-Type: application/xop+xml; charset=UTF-8; type="text/xml";
      Content-Transfer-Encoding: binary
      Content-ID:<[email protected]>

<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body>...</soap:
Envelope>  --uuid:aeb23655-314b-4365-822c-f56f674059d8
      Content-Type: application/xml; charset=UTF-8
      Content-Transfer-Encoding: binary
      Content-ID:<[email protected]>

<?xml version="1.0" encoding="UTF-8"?><ns2:Response
xmlns:ns2="ns://example.org/types">...</ns2:Response>
      --uuid:aeb23655-314b-4365-822c-f56f674059d8
      Content-Type: application/pdf
      Content-Transfer-Encoding: binary
      Content-ID:<[email protected]>

      %PDF-1.4
      %????
      3 0 obj<</Filter/FlateDecode/Length 1137>>stream....
      %%EOF

      --uuid:aeb23655-314b-4365-822c-f56f674059d8
      Content-Type: application/pdf
      Content-Transfer-Encoding: binary
      Content-ID:<[email protected]>


      --uuid:aeb23655-314b-4365-822c-f56f674059d8--

Source code:

      response.setXmlStream(getXmlResponseSource());
      for(int i=0; i<  client.getResponse().getAttachments().size(); i++){
       DataHandler dh =
client.getResponse().getAttachments().get(i).getPDFOutStream();
       DataSource source = dh.getDataSource();
       response.getPdfStream().add(new
DataHandler(source.getInputStream(), "application/pdf"))
      }


I have no idea why the last pdf document is not set.

Alex

Reply via email to