Ah. Well, you see, that's the problem. SOAP::Lite is generating a message that isn't described by the WSDL. Based on the WSDL, Axis is expecting the messages to contain elements called <greeting> and <second>. (SOAP permits the server to generate generic elements, but if it does, it should specify those generic elements in the WSDL definition.)
When you say that the names are generated on the fly, does that mean that they might be different every time you invoke the service? That doesn't really make any sense. Otherwise no one would ever be able to interoperate with SOAP::Lite. Either you need to convince SOAP::Lite to generate messages that correspond to the WSDL, or you need to modify the WSDL to correspond to what SOAP:Lite generates. Anne On Apr 8, 2005 5:27 PM, Maxim Grigoriev <[EMAIL PROTECTED]> wrote: > Those names are generated on fly by SOAP::Lite. The corresponding WSDL ( > created by SOAEditor ) > describes it as: > <wsdl:message name="sayHelloResponse"> > <wsdl:part name="greeting" type="xsd:string"/> > <wsdl:part name="second" type="xsd:string"/> > </wsdl:message> > --------------------- > below is part of debugging info from axis client when it parses the > response from the SOAP::Lite server ( sorry but its a long listing): > ------------------------------------------------------------------ > <?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><ns1:sayHello > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:ns1="lsui"><name xsi:type="xsd:string > ">test</name></ns1:sayHello></soapenv:Body></soapenv:Envelope> > - HTTP/1.1 200 OK > - Date Fri, 08 Apr 2005 19:47:05 GMT > - Server Apache/2.0.53 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.53 > OpenSSL/0.9.7a > - SOAPServer SOAP::Lite/Perl/0.65_3 > - Content-Length 554 > - Connection close > - Content-Type text/xml; charset=utf-8 > - Enter: SOAPPart ctor(FORM_INPUTSTREAM) > - org.apache.axis.i18n.resource::handleGetObject(setMsgForm) > - Setting current message form to: FORM_INPUTSTREAM (currentMessage is now > org.apache.axis.transport.http.SocketInputStream) > - Exit: SOAPPart ctor() > - org.apache.axis.i18n.resource::handleGetObject(xmlRecd00) > - > XML received: > - ----------------------------------------------- > - Enter: SOAPPart::getAsSOAPEnvelope() > - org.apache.axis.i18n.resource::handleGetObject(currForm) > - current form is FORM_INPUTSTREAM > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Enter: DeserializationContext::startPrefixMapping(xsi, > http://www.w3.org/2001/XMLSchema-instance) > - NSPush (32) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startPrefixMapping(soapenc, > http://schemas.xmlsoap.org/soap/encoding/) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startPrefixMapping(xsd, > http://www.w3.org/2001/XMLSchema) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startPrefixMapping(soap, > http://schemas.xmlsoap.org/soap/envelope/) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: > DeserializationContext::startElement(http://schemas.xmlsoap.org/soap/envelop > e/, Envelope) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Pushing element Envelope > - Exit: DeserializationContext::startElement() > - Enter: > DeserializationContext::startElement(http://schemas.xmlsoap.org/soap/envelop > e/, Body) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(newElem00) > - New MessageElement ([EMAIL PROTECTED]) named > {soap}Body > - Pushing element Body > - NSPush (32) > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::startPrefixMapping(namesp1, lsui) > - NSPush (32) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startElement(lsui, sayHelloResponse) > - Enter: BodyBuilder::onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(newElem00) > - New MessageElement ([EMAIL PROTECTED]) named > {namesp1}sayHelloResponse > - Exit: BodyBuilder::onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Pushing element sayHelloResponse > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::startElement(, s-gensym3) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(newElem00) > - New MessageElement ([EMAIL PROTECTED]) named > {}s-gensym3 > - xsi:type = 'xsd:string' > - Pushing element s-gensym3 > - NSPush (32) > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::endElement(, s-gensym3) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - NSPop (32) > - Popped element stack to > org.apache.axis.message.RPCElement:sayHelloResponse > - Exit: DeserializationContext::endElement() > - Enter: DeserializationContext::startElement(, s-gensym5) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(newElem00) > - New MessageElement ([EMAIL PROTECTED]) named > {}s-gensym5 > - xsi:type = 'xsd:string' > - Pushing element s-gensym5 > - NSPush (32) > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::endElement(, s-gensym5) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - NSPop (32) > - Popped element stack to > org.apache.axis.message.RPCElement:sayHelloResponse > - Exit: DeserializationContext::endElement() > - Enter: DeserializationContext::endElement(lsui, sayHelloResponse) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - NSPop (32) > - Popped element stack to org.apache.axis.message.SOAPBody:Body > - Exit: DeserializationContext::endElement() > - Enter: DeserializationContext::endPrefixMapping(namesp1) > - Exit: DeserializationContext::endPrefixMapping() > - Enter: > DeserializationContext::endElement(http://schemas.xmlsoap.org/soap/envelope/ > , Body) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - NSPop (32) > - Popped element stack to org.apache.axis.message.SOAPEnvelope:Envelope > - Exit: DeserializationContext::endElement() > - Enter: > DeserializationContext::endElement(http://schemas.xmlsoap.org/soap/envelope/ > , Envelope) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(empty00) > - NSPop (empty) > - Popped element stack to null > - Exit: DeserializationContext::endElement() > - Enter: DeserializationContext::endPrefixMapping(xsi) > - Exit: DeserializationContext::endPrefixMapping() > - Enter: DeserializationContext::endPrefixMapping(soapenc) > - Exit: DeserializationContext::endPrefixMapping() > - Enter: DeserializationContext::endPrefixMapping(xsd) > - Exit: DeserializationContext::endPrefixMapping() > - Enter: DeserializationContext::endPrefixMapping(soap) > - Exit: DeserializationContext::endPrefixMapping() > - Enter: DeserializationContext::endDocument() > - Exit: DeserializationContext::endDocument() > - org.apache.axis.i18n.resource::handleGetObject(setMsgForm) > - Setting current message form to: FORM_SOAPENVELOPE (currentMessage is now > org.apache.axis.message.SOAPEnvelope) > - Exit: SOAPPart::getAsSOAPEnvelope > - org.apache.axis.i18n.resource::handleGetObject(register00) > - register 'xsi' - 'http://www.w3.org/2001/XMLSchema-instance' > - NSPush (32) > - NSPush (32) > - org.apache.axis.i18n.resource::handleGetObject(register00) > - register 'soapenc' - 'http://schemas.xmlsoap.org/soap/encoding/' > - NSPush (32) > - org.apache.axis.i18n.resource::handleGetObject(register00) > - register 'xsd' - 'http://www.w3.org/2001/XMLSchema' > - NSPush (32) > - org.apache.axis.i18n.resource::handleGetObject(register00) > - register 'soap' - 'http://schemas.xmlsoap.org/soap/envelope/' > - NSPush (32) > - SAXOutputter.startElement ['http://schemas.xmlsoap.org/soap/envelope/' > Envelope] > - org.apache.axis.i18n.resource::handleGetObject(startElem00) > - Start element [http://schemas.xmlsoap.org/soap/envelope/]:Envelope > - SAXOutputter.startElement ['http://schemas.xmlsoap.org/soap/envelope/' > Body] > - org.apache.axis.i18n.resource::handleGetObject(startElem00) > - Start element [http://schemas.xmlsoap.org/soap/envelope/]:Body > - NSPush (32) > - org.apache.axis.i18n.resource::handleGetObject(register00) > - register 'namesp1' - 'lsui' > - NSPush (32) > - NSPush (32) > - SAXOutputter.startElement ['lsui' sayHelloResponse] > - org.apache.axis.i18n.resource::handleGetObject(startElem00) > - Start element [lsui]:sayHelloResponse > - SAXOutputter.startElement ['' s-gensym3] > - org.apache.axis.i18n.resource::handleGetObject(startElem00) > - Start element []:s-gensym3 > - NSPush (32) > - SAXOutputter.characters ['Hello test'] > - SAXOutputter.endElement ['' s-gensym3] > - org.apache.axis.i18n.resource::handleGetObject(endElem00) > - End element s-gensym3 > - NSPop (32) > - SAXOutputter.startElement ['' s-gensym5] > - org.apache.axis.i18n.resource::handleGetObject(startElem00) > - Start element []:s-gensym5 > - NSPush (32) > - SAXOutputter.characters ['second string'] > - SAXOutputter.endElement ['' s-gensym5] > - org.apache.axis.i18n.resource::handleGetObject(endElem00) > - End element s-gensym5 > - NSPop (32) > - SAXOutputter.endElement ['lsui' sayHelloResponse] > - org.apache.axis.i18n.resource::handleGetObject(endElem00) > - End element namesp1:sayHelloResponse > - NSPop (32) > - SAXOutputter.endElement ['http://schemas.xmlsoap.org/soap/envelope/' Body] > - org.apache.axis.i18n.resource::handleGetObject(endElem00) > - End element soap:Body > - NSPop (32) > - SAXOutputter.endElement ['http://schemas.xmlsoap.org/soap/envelope/' > Envelope] > - org.apache.axis.i18n.resource::handleGetObject(endElem00) > - End element soap:Envelope > - org.apache.axis.i18n.resource::handleGetObject(empty00) > - NSPop (empty) > - SAXOutputter.endDocument > - <?xml version="1.0" encoding="UTF-8"?><soap:Envelope > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml > ns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><namesp1: > sayHelloResponse xmlns:namesp1="lsui"><s-gensym3 xsi:type="xsd:string">Hello > test</s-gensym3><s-gensym5 xsi:type="xsd:string">second > string</s-gensym5></namesp1:sayHelloRespon > se></soap:Body></soap:Envelope> > - org.apache.axis.i18n.resource::handleGetObject(exit00) > - Exit: HTTPDispatchHandler::invoke > - Exit: SimpleChain::invoke > - org.apache.axis.i18n.resource::handleGetObject(semanticCheck00) > - Doing SOAP semantic checks... > - Enter: SOAPPart::getAsSOAPEnvelope() > - org.apache.axis.i18n.resource::handleGetObject(currForm) > - current form is FORM_SOAPENVELOPE > - Exit: AxisClient::invoke > - Enter: SOAPPart::getAsSOAPEnvelope() > - org.apache.axis.i18n.resource::handleGetObject(currForm) > - current form is FORM_SOAPENVELOPE > - Exit: Call::invoke() > - Enter: SOAPPart::getAsSOAPEnvelope() > - org.apache.axis.i18n.resource::handleGetObject(currForm) > - current form is FORM_SOAPENVELOPE > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Enter: DeserializationContext::startPrefixMapping(namesp1, lsui) > - NSPush (32) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startElement(lsui, sayHelloResponse) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::startElement(, s-gensym3) > - Enter: RPCHandler.onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(typeFromAttr00) > - Type from attributes is: {http://www.w3.org/2001/XMLSchema}string > - Exit: RPCHandler.onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - NSPush (32) > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::endElement(, s-gensym3) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00) > - Set value Hello test in target > [EMAIL PROTECTED] > - NSPop (32) > - Popped element stack to > org.apache.axis.message.RPCElement:sayHelloResponse > - Exit: DeserializationContext::endElement() > - Enter: DeserializationContext::startElement(, s-gensym5) > - Enter: RPCHandler.onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(typeFromAttr00) > - Type from attributes is: {http://www.w3.org/2001/XMLSchema}string > - Exit: RPCHandler.onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - NSPush (32) > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::endElement(, s-gensym5) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00) > - Set value second string in target > [EMAIL PROTECTED] > - NSPop (32) > - Popped element stack to > org.apache.axis.message.RPCElement:sayHelloResponse > - Exit: DeserializationContext::endElement() > - Enter: DeserializationContext::endElement(lsui, sayHelloResponse) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(setProp00) > - Setting MessageContext property in RPCHandler.endElement(). > - org.apache.axis.i18n.resource::handleGetObject(empty00) > - NSPop (empty) > - Popped element stack to org.apache.axis.message.SOAPBody:Body > - Exit: DeserializationContext::endElement() > - Exit: Call::invoke(RPCElement) > - Exit: Call::invoke(ns, meth, args) > - axis.Call.invoke: 567 {lsui}sayHello > =------------------------------------------------ > > --> -----Original Message----- > --> From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > --> Sent: Friday, April 08, 2005 4:15 PM > --> To: [email protected] > --> Subject: Re: SOAP::Lite interoperability question > --> > --> > --> What does the WSDL say? > --> > --> The SOAP message appears to return two strings (s-gensym3 and > --> s-gensym5). Axis shouldn't have a problem with that. I assume the WSDL > --> message is defined like this: > --> > --> <wsdl:message name="sayHelloResponse> > --> <wsdl:part name="s-gensym3" type="xsd:string"/> > --> <wsdl:part name="s-gensym5" type="xsd:string"/> > --> </wsdl:message> > --> > --> If it isn't then modify the WSDL so that it does represent the > --> expected message format. > --> > --> Anne > --> > --> On Apr 8, 2005 3:55 PM, Maxim Grigoriev <[EMAIL PROTECTED]> wrote: > --> > Hello, > --> > I am having a problem with getting Axis client to communicate > --> with SOAP::Lite > --> > server. The WSDL describes very simple service and > --> corresponding method, it accepts one arg and returns two > --> > strings. The Axis client built by utilizing WSDL2Java tool > --> doesnt see the values , returned by > --> > the invocation, becasue SOAP::Lite wraps every returned > --> string into some generic elements ( which is actualy complaint > --> to SOAP standart) > --> > > --> > <?xml version="1.0" encoding="UTF-8"?><soap:Envelope > --> soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > --> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml > --> > ns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > --> xmlns:xsd="http://www.w3.org/2001/XMLSchema" > --> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Bod > --> y><namesp1: > --> > sayHelloResponse xmlns:namesp1="lsui"><s-gensym3 > --> xsi:type="xsd:string">Hello test</s-gensym3><s-gensym5 > --> xsi:type="xsd:string">second string</s-gensym5></namesp1:sayHelloRespon > --> > se></soap:Body></soap:Envelope> > --> > > --> > So, the Axis client gets nulls instead of strings. Please > --> help me to solve this problem. One note though, I dont like an > --> idea of building own deserealizer becasue > --> > the whole design built around concept of having one WSDL for > --> the whole service description ( so it used to built clients in > --> any other language - python, perl, java) > --> > Thanks, > --> > Maxim Grigoriev. > --> > --------------------------------------------------- > --> > :::: FERMILAB CD/CCF/NET/DCN > --> > > --> > > --> > >
