Thats kind of strange, because Axis and SOAP::Lite - both claiming the
conformance with SOAP 1.1 and WSDL 1.1 standards and even if  I understand
issues
related to serealization/deserealization of complex types as hashrefs , but
still, the
passing around some array of strings or even two strings should be
straightforward ( actualy  the client
written in Python works without any problems with the same SOAP::Lite
service).
--Maxim

--> -----Original Message-----
--> From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
--> Sent: Friday, April 08, 2005 5:04 PM
--> To: axis-user@ws.apache.org
--> Subject: Re: SOAP::Lite interoperability question
-->
-->
--> 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/so
--> ap/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/so
--> ap/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: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>
--> > - 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: axis-user@ws.apache.org
--> > --> 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