John, Please post the complete WSDD file also.
Anne On 7/6/05, John Baker <[EMAIL PROTECTED]> wrote: > And as a further twist, another method called from the Axis Stubs generated > from teh WSDL what would seem to send the correct request: > > <soapenv:Body> > <GetCnCodeList > xmlns="http://www.caps-solutions.co.uk/webservices/connectors/common/messagetypes"> > <ListName>moo</ListName> > </GetCnCodeList> > > So it would seem as if it's just the LogonToConnector method that suffers > from this repeating element problem, i.e. the Stubs generate two elements > and not one. > > John > > > On Wed, Jul 06, 2005 at 11:25:39AM +0100, John Baker wrote: > > As a bit of an update, by hacking the 'commercial app' and persuading it to > > send this: > > > > <soapenv:Body> > > <ns1:LogonToConnector > > xmlns:ns1="http://www.caps-solutions.co.uk/webservices/connectors/common/messagetypes"> > > <ns1:LogonToConnector> > > <ns1:UniformLoginCredentials > > xmlns:ns1="http://www.caps-solutions.co.uk/schema/uniform/72b/common/connectortypes"> > > > > (i.e. two LogonToConnector nodes), the WS is deserialised correctly. > > > > So I guess my question is now: Why does the Java sources and WSDD generated > > from the WSDL (which I have put here: > > http://www.javasystemsolutions.com/source.wsdl) result in the doubling of > > that element in the SOAP request? What is telling Axis to expect two > > LogonToConnector nodes? I assume the deploy.wsdd? Why? :) > > > > Thanks, > > > > > > John > > > > On Wed, Jul 06, 2005 at 06:29:42AM +0100, John Baker wrote: > > > Or rather, put more simply, I am generating Stub classes from a WDSL which > > > generate a second LogonToConnector element. The 'commercial app' seems to > > > be > > > building the SOAP message manually (it's not using stubs) so perhaps > > > that's > > > why the XML is so different, but I'd like to understand why there are two > > > LogonToConnector elements from the Stub request. > > > > > > > > > John > > > > > > On Tue, Jul 05, 2005 at 08:54:32PM +0100, John Baker wrote: > > > > I'm generating Stubs and a deploy.wsdd file from the wsdl. I'm then > > > > directly > > > > deploying the stubs (by changing the classname in the deploy.wsdd). I > > > > then > > > > wrote a few lines to invoke the stub and logged the output, giving the > > > > double LogonToConnector output. > > > > > > > > What I'm trying to achieve is invokation of a deployed webservice, where > > > > that deployed webservice was derived from the original WSDL. > > > > > > > > > > > > John > > > > > > > > On Tue, Jul 05, 2005 at 01:01:29PM -0400, Anne Thomas Manes wrote: > > > > > According to the WSDL, there should be only one LogonToConnector > > > > > element. The message should look like the first message you posted > > > > > (the one generated by your Java application. I have no idea why the > > > > > stub generates an extra LogonToConnector element, or why that message > > > > > seems to work. I also don't know why the stub adds the xsi:type > > > > > attribute to the <UniformLoginCredentials> element. (It shouldn't.) > > > > > > > > > > Can you review for us again the sequence you went through to create > > > > > the service and the client? > > > > > > > > > > I also suggest that you edit the WSDD typeMapping to specify: > > > > > qname="ns:DatabaseID" rather than > > > > > qname="ns:>UniformLoginCredentialsType>DatabaseID" > > > > > > > > > > Also, what version of Axis are you using? > > > > > > > > > > Anne > > > > > > > > > > On 7/5/05, John Baker <[EMAIL PROTECTED]> wrote: > > > > > > I should point out that the call which works is being generated by > > > > > > the Java > > > > > > stubs generated from the WSDL, while the offending request is being > > > > > > generated by another bit of Java building up it's own SOAP message > > > > > > (although > > > > > > it seems to use the axis client libraries). I guess the major > > > > > > question is: > > > > > > Why did the stubs use two LogonToConnector elements... > > > > > > > > > > > > On Tue, Jul 05, 2005 at 10:58:15AM -0400, Anne Thomas Manes wrote: > > > > > > > Please post the WSDL. > > > > > > > > > > > > > > There is a big difference between the two messages -- one has an > > > > > > > extra > > > > > > > <LogonToConnector> wrapper element. But if that's the problem, > > > > > > > then > > > > > > > I'd expect the error to occur on that element rather than on > > > > > > > DatabaseID. > > > > > > > > > > > > > > Your WSDD also looks suspect. The qname should be > > > > > > > qname="ns:DatabaseID" rather than > > > > > > > qname="ns:>UniformLoginCredentialsType>DatabaseID". > > > > > > > > > > > > > > Anne > > > > > > > > > > > > > > On 7/5/05, John Baker <[EMAIL PROTECTED]> wrote: > > > > > > > > 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 > > > > > > > > > > > > > > >
