wood burning stoves 2.0*
The moose likes Web Services and the fly likes Consuming binary data from webservice. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "Consuming binary data from webservice." Watch "Consuming binary data from webservice." New topic
Author

Consuming binary data from webservice.

Shasi Mitra
Ranch Hand

Joined: Nov 27, 2008
Posts: 101

Hi all, our web service is produced at .net side and consumed at java side. We are expecting binary data from the web service. I am getting response but while parsing I get the following exception.

javax.xml.stream.XMLStreamException: An invalid XML character (Unicode: 0x2d) was found in the prolog of the document.
at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:252


The response I get is in the below format

Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding: 8bit
Content-Type: application/xop+xml;charset=utf-8;type="text/xml"

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><StreamFileContentsResponse xmlns="http://activitylogsetup.webservice.time.hrii.adp.com/"><StreamFileContentsResult>AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBQKAAAAAAChQLg+wfWRfSAAAAAgAAAAKAAAAFFFFFFFFFFFFFFFFFS5DSEdMb2cgc3RhcnRlSSSSSSSSSSDDDDDDDDDDDDDDDDDFFFFFFFFFFFFFFFFFFFFFFFFF</StreamFileContentsResult></StreamFileContentsResponse></s:Body></s:Envelope>
--uuid:a157f930-6eef-44b6-aeca-7199032d9770+id=1--

As per the wsdl I should receive the response in byte[] format but parsing fails. To fix this I do not know whether the response is not using proper encoding or the WS adapter has a limitation when binary data is passed by value within the body of the document. Let me know if you can give any inputs on this.
William Brogden
Author and all-around good cowpoke
Rancher

Joined: Mar 22, 2000
Posts: 12806
    
    5
You can't send binary data as part of a SOAP envelope because a SOAP envelope must be legal XML and there are plenty of byte values that are not legal XML.

Usually, binary data gets encoded into legal characters for transmission if it is being sent inside the envelope.

Bulky binary data gets sent as attachments - the --uuid etc text after the closing tag looks like you should be expecting a binary attachment.

Bill



 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Consuming binary data from webservice.