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
> --> >
> --> >
> -->
> 
>

Reply via email to