2 Replies Latest reply on May 11, 2010 10:07 AM by Eugene McKissick

    XML Content handler only supports a StreamSource content object

    Eugene McKissick Newbie



      I recently converted an existing web service from CXF to JBossWS Native.  The service is up and running, however whenever I try to call the web service I get the following error:


      [RequestHandlerImpl] Error processing web service request

      org.jboss.ws.WSException: java.io.IOException: XML Content handler only supports a StreamSource content object



      Caused by: java.io.IOException: XML Content handler only supports a StreamSource content object

      at org.jboss.ws.core.soap.attachment.XmlDataContentHandler.writeTo(XmlDataContentHandler.java:101)

      at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:883)

      at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350)

      at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:845)

      at javax.mail.internet.MimeMultipart.wrtieTo(MimeMultipart.java:361)

      at org.jboss.ws.core.soap.attachment.MultipartRelatedEncoder.writeTo(MultipartRelatedEncoder.java:123)

      at org.jboss.ws.core.soap.SOAPMessageImpl.writeTo(SOAPMessageImpl.java:343)

      at org.jboss.wsf.stack.jbws.RequestHandlerImpl.sendResponse(RequestHandlerImpl.java:401)

      ...24 more


      We are currently using JBoss 5.1 with JDK 6.


      The method in the web service impl. that triggers this error is


      public void getXmlDocs(DocParams params, Holder<ReturnType> outDocument, Holder<String> xmlAttach)



           List<String> docIDs = params.getDocID().getItem();

            for (String s: docIDs) {



           ReturnType retType = new ReturnType();

           retType = this.populateReturnType();

           outDocument.value = retType;


           xmlAttach.value = <Read xml from text file>;

           System.out.println(xmlAttach.value); //Prints out contents of file as string correctly



      Everything seems fine in the method, but when JBoss tries to create the response the error occurs.  Turning on debug I see the ReturnType object being serialized by the JAXBSerializer.  The [ObjectContent] xmlFragment statement contains xml for the ReturnType wrapped in the getDocResponse header.  Before END handleRequest is logged.


      Associated WSDL chunk


      <!-- *************************** Type Definitions *******************************  -->


           <complexType name="ReturnType">


                     <element name="returnInfo" type="xsd:String">

                     <element name="returnStatus" type="xsd:String">




           <complexType name="getDocResponse" type="tns:ReturnType" />


      <!--***************************Message Definitions******************************** -->

      <message name="getDocResponse">

           <part name="outDocument" element="tns:getDocResponse"/>

           part name="xmlAttach" type="xsd:string"/>



      <!--***************************Binding Definitions******************************** --


      <output name="getDocResponse">



                          <soap:body parts="outDocument" use="literal" />



                     <mime:content part="xmlAttach" type="text/xml"/>





      I apologize for the limited information...the errors and code reside on the server, so I had to retype the code (hence the pseudocode).  Any help or suggestions would be greatly appreciated.