Hello,
We've got a problem when using Axis 1.2 as
a webservice to send attachments to non Axis clients.
Our wsdl defines the binary attachment as
xsd:hexBinary, which translates to <wsdl:part name="csv"
type="apachesoap:Source"/> when deployed and asking the wsdl from the
webservice.
The problem is the soap envelope it sends
back to the client, it mentions xsi:type="ns1:Source" xmlns="" xmlns:ns1="http://xml.apache.org/xml-soap"/, which gives an
error on the client:
failed to deserialize
xml:weblogic.xml.schema.binding.DeserializationException: mapping lookup failure
for xml type ['http://xml.apache.org/xml-soap']:Source
Axis seems to enforce a apache.org specific
decoding for the attachment, which is not cross platform. I think the webservice
would work just fine if it just didn't supply any xsi:type nor xmlns, but i
don't know if Axis can be configured not to. trying to set sendXsiTypes
to false in the wsdd didn't work.
Anyone having success sending attachments
from a Axis 1.2 server to a non Axis client? Upgrading to Axis 2 is not an
option.
Client: weblogic
Source WSDL:
<wsdl:message
name="retrieveLoggingResponse">
<wsdl:part type="xsd:hexBinary" name="csv" />
</wsdl:message>
<wsdl:part type="xsd:hexBinary" name="csv" />
</wsdl:message>
Generated WSDL when asking ?WSDL from Axis
servlet:
<wsdl:message
name="retrieveLoggingResponse">
<wsdl:part name="csv" type="apachesoap:Source"/>
</wsdl:message>
<wsdl:part name="csv" type="apachesoap:Source"/>
</wsdl:message>
Returned evenvelope by Axis
1.2:
<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>
<retrieveLoggingResponse xmlns="http://telenet.be/idtv/portal/usagelogging/">
<csv href="" xsi:type="ns1:Source" xmlns="" xmlns:ns1="http://xml.apache.org/xml-soap"/>
</retrieveLoggingResponse>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Body>
<retrieveLoggingResponse xmlns="http://telenet.be/idtv/portal/usagelogging/">
<csv href="" xsi:type="ns1:Source" xmlns="" xmlns:ns1="http://xml.apache.org/xml-soap"/>
</retrieveLoggingResponse>
</soapenv:Body>
</soapenv:Envelope>
....
<2FBC23FC4668CB8099EC63E11378CF34>attachment...
Frederik Colardyn J2EE developer / Technical Consultant www.cronos.be www.hwbot.org
