Further to my post, I have derived that if I create Stub classes from WSDL and make a WS call using Axis - to an Axis server - the client generates this call:
<LogonToConnector xmlns="http://www.caps-solutions.co.uk/webservices/connectors/common/messagetypes"> <LogonToConnector> <ns1:UniformLoginCredentials xsi:type="ns1:UniformLoginCredentialsType" xmlns:ns1="http://www.caps-solutions.co.uk/schema/uniform/72b/common/connectortypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ns1:DatabaseID>a</ns1:DatabaseID> <ns1:UniformUserName>b</ns1:UniformUserName> <ns1:UniformPassword>c</ns1:UniformPassword> </ns1:UniformLoginCredentials> </LogonToConnector> </LogonToConnector> Which is unserialised without a problem. So what is different between that and this: <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> <LogonToConnector xmlns="http://www.caps-solutions.co.uk/webservices/connectors/common/messagetypes" xmlns:ns1="http://www.caps-solutions.co.uk/schema/unifor <ns1:UniformLoginCredentials> <ns1:DatabaseID>a</ns1:DatabaseID> <ns1:UniformUserName>b</ns1:UniformUserName> <ns1:UniformPassword>c</ns1:UniformPassword> </ns1:UniformLoginCredentials> </LogonToConnector> </soapenv:Body> </soapenv:Envelope> Well I can see they are different, but what key fact makes one unserialisable? Thanks, John On Mon, Jul 04, 2005 at 08:32:16PM +0100, John Baker wrote: > Hi, > > I'm having a small problem when making a SOAP call and I'm getting this > exception: > > AxisFault > faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException > faultSubcode: > faultString: org.xml.sax.SAXException: Invalid element in > uk.co.caps_solutions.www.schema.uniform._72b.common.connectortypes.UniformLoginRequestType > - DatabaseID > faultActor: > faultNode: > faultDetail: > {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: > Invalid element in > uk.co.caps_solutions.www.schema.uniform._72b.common.connectortypes.UniformLoginRequestType > - DatabaseID > at > org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:255) > at > org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) > > The SOAP request is as follows: > > <?xml version="1.0" encoding="UTF-8"?> > <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><LogonToConnector > xmlns="http://www.xxx.co.uk/webservices/connectors/common/messagetypes" > xmlns:ns1="http://www.xxx.co.uk/schema/uniform/72b/common/connectortypes" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <ns1:UniformLoginCredentials> > <ns1:DatabaseID>dbVal</ns1:DatabaseID> > <ns1:UniformUserName>userVal</ns1:UniformUserName> > <ns1:UniformPassword>passVal</ns1:UniformPassword> > </ns1:UniformLoginCredentials> > </LogonToConnector> > > </soapenv:Body></soapenv:Envelope> > > And the deploy.wsdd refers to DatabaseID as follows: > > <typeMapping > xmlns:ns="http://www.xxx.co.uk/schema/uniform/72b/common/connectortypes" > qname="ns:>UniformLoginCredentialsType>DatabaseID" > type="java:java.lang.String" > serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" > deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" > encodingStyle="" > /> > > Could someone point me in roughly the right direction? Is the SOAP request > badly formed? Why has it failed to look up a method of deserialising the > DatabaseID element? > > Thanks, > > > > John
