This week's book giveaway is in the Design forum.
We're giving away four copies of Design for the Mind and have Victor S. Yocco on-line!
See this thread for details.
Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Consuming binary data from webservice.

 
Shasi Mitra
Ranch Hand
Posts: 101
Flex Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 13058
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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



 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic