Mike Moran wrote:

Hi. I am currently moving over from a Java client api generated from WSDL using JAX-RPC 1.4 to instead use Axis 1.2-RC3. I have existing code which uses the JAX-RPC generated API so I was hoping that the JAX-RPC binding 'standard' would make this fairly easy i.e I could regenerate and compile against the same interface but with a different underlying implementation.

Just replying to correct myself here because I meant Java Web Services Developer Pack (JWSDP) version 1.4 (not JAX-RPC 1.4). Btw, JWSDP 1.4 seems to come with JAX-RPC version 1.1.2 (according to jaxrpc/docs/ReleaseNotes.html).


However, I am finding that 'xsd:unsignedByte' is being bound to 'org.apache.axis.types.UnsignedByte' as opposed to 'short'. This then leads to the arrays of this type also being unusable.

I notice that JAXB defaults 'xsd:unsignedByte' to be mapped to 'short'. Is it possible to get Axis to do the same? Is this a bug in Axis or a misunderstanding of a spec, or just a decision left open in a spec? Can I override Axis's choice of what to map to?

Btw, I had a look at TypeMappingImpl; does dotnet_soapenc_bugfix have anything to do with this? Note that I'm doing all this generation from the wsdl2java ant task, so something I could set from there would be nice (in an ideal world ;-) ).

FYO, an example of the input WSDL is:

<complexType name="Array4OfunsignedByte">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" WSDL:arrayType="xsd:unsignedByte[]"/>
</restriction>
</complexContent>
</complexType>


This is using rpc/encoded btw, if that matters.

Thanks,


-- Mike

Reply via email to