Dear list,

I'm new to Axis, but not to web-services development. I've developed web services clients for the Mac, which communicate to .NET based services. Now, I'm involved in ditching the .NET work, in favor of Axis.

Anyway, we have a few Mac clients, which send some data Base64 encoded. So, when the data gets serialized into the SOAP packet, the parameter might look something like this:

<myTag xsi:type="xsd:base64">AAAA</myTag>

For some reason, Mac OS X, 10.3, claims the type is "base64", when it really should be "base64Binary". Why it does this, I don't know. (For those who are curious, 10.4, or "Tiger", does flag the parameter as a base64Binary)

What I'm trying to tell Axis, is that if you see a param flagged as a "base64", then treat it as a "base64Binary".

My guess is that I can accomplish this by adding a "typeMapping" tag in my "deploy.wsdd" file:

<typeMapping qname="xsd:base64"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  languageSpecificType="java:byte[]"
  serializer="org.apache.axis.encoding.ser.Base64SerializerFactory"
  deserializer="org.apache.axis.encoding.ser.Base64DeserializerFactory"
  encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
/>

But this seems to have no effect, as I still get a SOAP-fault message sent back.

If anyone has done something like this, I'd really like to know how, as I'd like to continue to allow Mac OS X users to connect to my Web Service.

Thanks for any help in this regard,
-Dan.

P.S. - I'm using Eclipse 3.1M6, with the latest Web Tools, which includes Axis 1.1.

Reply via email to