I have a demo application that attempts to send various types of attachments as SOAP messages over JMS using jaxrpc Service methods include:
sendString(String str) sendBytes(byte[] bytes) sendDataHandler(DataHander dh)
Sending a String or a byte array works fine, but sending
a javax.activation.DataHandler fails.
The same service code, deployed as a WebService (using jboss) and accessed via http, works fine (e.g. the DataHandler is received properly)
For the jms version, I can see that my SimpleJMSListener is getting called, and the message contains a reference to the (audio) data followed by the data itself:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:sendDataHandler soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:Service">
<dh href="cid:32A99BDD12F209211C50E65535468CC6"/>
</ns1:sendDataHandler>
</soapenv:Body>
</soapenv:Envelope>
------=_Part_0_14017689.1076512674972
Content-Type: audio/x-wav
Content-Transfer-Encoding: binary
Content-Id: <32A99BDD12F209211C50E65535468CC6>
RIFF|WAVEfmt +"VdataX
...binary data follows....
This leads me to think that the client is serializing and sending the data properly, but the server is unable to parse what it takes out of the jms message.
A tarball of my demo code is available here:
http://procmgmt.raba.com/axis/attachmenttest.tar.gz
Am I missing some setting on the Call or in the jms url? Can anyone point me in the right direction about how to solve this?
TIA,
Tom Nelson
