You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Maxim Grigoriev <ma...@fnal.gov> on 2005/04/08 21:55:22 UTC
SOAP::Lite interoperability question
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: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>
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
RE: SOAP::Lite interoperability question
Posted by Maxim Grigoriev <ma...@fnal.gov>.
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:atmanes@gmail.com]
--> 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 <ma...@fnal.gov> 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 org.apache.axis.message.EnvelopeHandler@1581593
--> > - 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 org.apache.axis.message.EnvelopeBuilder@1113622
--> > - 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 org.apache.axis.message.BodyBuilder@15856a5
--> > - org.apache.axis.i18n.resource::handleGetObject(newElem00)
--> > - New MessageElement (org.apache.axis.message.SOAPBody@a084f8) 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 (org.apache.axis.message.RPCElement@79ed7f) named
--> > {namesp1}sayHelloResponse
--> > - Exit: BodyBuilder::onStartChild()
--> > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
--> > - Pushing handler org.apache.axis.message.SOAPHandler@d73c7a
--> > - Pushing element sayHelloResponse
--> > - Exit: DeserializationContext::startElement()
--> > - Enter: DeserializationContext::startElement(, s-gensym3)
--> > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
--> > - Pushing handler org.apache.axis.message.SOAPHandler@c39a20
--> > - org.apache.axis.i18n.resource::handleGetObject(newElem00)
--> > - New MessageElement
--> (org.apache.axis.message.MessageElement@1bbd23f) 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 org.apache.axis.message.SOAPHandler@c39a20
--> > - 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 org.apache.axis.message.SOAPHandler@125fefa
--> > - org.apache.axis.i18n.resource::handleGetObject(newElem00)
--> > - New MessageElement
--> (org.apache.axis.message.MessageElement@186df0f) 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 org.apache.axis.message.SOAPHandler@125fefa
--> > - 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 org.apache.axis.message.SOAPHandler@d73c7a
--> > - 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 org.apache.axis.message.BodyBuilder@15856a5
--> > - 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 org.apache.axis.message.EnvelopeBuilder@1113622
--> > - 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 org.apache.axis.message.EnvelopeHandler@102799c
--> > - 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 org.apache.axis.message.RPCHandler@17e121c
--> > - 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
--> org.apache.axis.encoding.ser.SimpleDeserializer@a613f8
--> > - NSPush (32)
--> > - Exit: DeserializationContext::startElement()
--> > - Enter: DeserializationContext::endElement(, s-gensym3)
--> > - org.apache.axis.i18n.resource::handleGetObject(popHandler00)
--> > - Popping handler
--> org.apache.axis.encoding.ser.SimpleDeserializer@a613f8
--> > - org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
--> > - Set value Hello test in target
--> > org.apache.axis.message.RPCParamTarget@16921fd
--> > - 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
--> org.apache.axis.encoding.ser.SimpleDeserializer@3411a
--> > - NSPush (32)
--> > - Exit: DeserializationContext::startElement()
--> > - Enter: DeserializationContext::endElement(, s-gensym5)
--> > - org.apache.axis.i18n.resource::handleGetObject(popHandler00)
--> > - Popping handler
--> org.apache.axis.encoding.ser.SimpleDeserializer@3411a
--> > - org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
--> > - Set value second string in target
--> > org.apache.axis.message.RPCParamTarget@1a7508a
--> > - 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 org.apache.axis.message.RPCHandler@17e121c
--> > - 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:atmanes@gmail.com]
--> > --> 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 <ma...@fnal.gov> 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
--> > --> >
--> > --> >
--> > -->
--> >
--> >
-->
Re: SOAP::Lite interoperability question
Posted by Anne Thomas Manes <at...@gmail.com>.
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 <ma...@fnal.gov> 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 org.apache.axis.message.EnvelopeHandler@1581593
> - 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 org.apache.axis.message.EnvelopeBuilder@1113622
> - 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 org.apache.axis.message.BodyBuilder@15856a5
> - org.apache.axis.i18n.resource::handleGetObject(newElem00)
> - New MessageElement (org.apache.axis.message.SOAPBody@a084f8) 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 (org.apache.axis.message.RPCElement@79ed7f) named
> {namesp1}sayHelloResponse
> - Exit: BodyBuilder::onStartChild()
> - org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
> - Pushing handler org.apache.axis.message.SOAPHandler@d73c7a
> - Pushing element sayHelloResponse
> - Exit: DeserializationContext::startElement()
> - Enter: DeserializationContext::startElement(, s-gensym3)
> - org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
> - Pushing handler org.apache.axis.message.SOAPHandler@c39a20
> - org.apache.axis.i18n.resource::handleGetObject(newElem00)
> - New MessageElement (org.apache.axis.message.MessageElement@1bbd23f) 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 org.apache.axis.message.SOAPHandler@c39a20
> - 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 org.apache.axis.message.SOAPHandler@125fefa
> - org.apache.axis.i18n.resource::handleGetObject(newElem00)
> - New MessageElement (org.apache.axis.message.MessageElement@186df0f) 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 org.apache.axis.message.SOAPHandler@125fefa
> - 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 org.apache.axis.message.SOAPHandler@d73c7a
> - 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 org.apache.axis.message.BodyBuilder@15856a5
> - 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 org.apache.axis.message.EnvelopeBuilder@1113622
> - 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 org.apache.axis.message.EnvelopeHandler@102799c
> - 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 org.apache.axis.message.RPCHandler@17e121c
> - 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 org.apache.axis.encoding.ser.SimpleDeserializer@a613f8
> - NSPush (32)
> - Exit: DeserializationContext::startElement()
> - Enter: DeserializationContext::endElement(, s-gensym3)
> - org.apache.axis.i18n.resource::handleGetObject(popHandler00)
> - Popping handler org.apache.axis.encoding.ser.SimpleDeserializer@a613f8
> - org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
> - Set value Hello test in target
> org.apache.axis.message.RPCParamTarget@16921fd
> - 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 org.apache.axis.encoding.ser.SimpleDeserializer@3411a
> - NSPush (32)
> - Exit: DeserializationContext::startElement()
> - Enter: DeserializationContext::endElement(, s-gensym5)
> - org.apache.axis.i18n.resource::handleGetObject(popHandler00)
> - Popping handler org.apache.axis.encoding.ser.SimpleDeserializer@3411a
> - org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
> - Set value second string in target
> org.apache.axis.message.RPCParamTarget@1a7508a
> - 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 org.apache.axis.message.RPCHandler@17e121c
> - 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:atmanes@gmail.com]
> --> 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 <ma...@fnal.gov> 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
> --> >
> --> >
> -->
>
>
RE: SOAP::Lite interoperability question
Posted by Maxim Grigoriev <ma...@fnal.gov>.
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 org.apache.axis.message.EnvelopeHandler@1581593
- 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 org.apache.axis.message.EnvelopeBuilder@1113622
- 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 org.apache.axis.message.BodyBuilder@15856a5
- org.apache.axis.i18n.resource::handleGetObject(newElem00)
- New MessageElement (org.apache.axis.message.SOAPBody@a084f8) 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 (org.apache.axis.message.RPCElement@79ed7f) named
{namesp1}sayHelloResponse
- Exit: BodyBuilder::onStartChild()
- org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
- Pushing handler org.apache.axis.message.SOAPHandler@d73c7a
- Pushing element sayHelloResponse
- Exit: DeserializationContext::startElement()
- Enter: DeserializationContext::startElement(, s-gensym3)
- org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
- Pushing handler org.apache.axis.message.SOAPHandler@c39a20
- org.apache.axis.i18n.resource::handleGetObject(newElem00)
- New MessageElement (org.apache.axis.message.MessageElement@1bbd23f) 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 org.apache.axis.message.SOAPHandler@c39a20
- 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 org.apache.axis.message.SOAPHandler@125fefa
- org.apache.axis.i18n.resource::handleGetObject(newElem00)
- New MessageElement (org.apache.axis.message.MessageElement@186df0f) 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 org.apache.axis.message.SOAPHandler@125fefa
- 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 org.apache.axis.message.SOAPHandler@d73c7a
- 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 org.apache.axis.message.BodyBuilder@15856a5
- 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 org.apache.axis.message.EnvelopeBuilder@1113622
- 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 org.apache.axis.message.EnvelopeHandler@102799c
- 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 org.apache.axis.message.RPCHandler@17e121c
- 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 org.apache.axis.encoding.ser.SimpleDeserializer@a613f8
- NSPush (32)
- Exit: DeserializationContext::startElement()
- Enter: DeserializationContext::endElement(, s-gensym3)
- org.apache.axis.i18n.resource::handleGetObject(popHandler00)
- Popping handler org.apache.axis.encoding.ser.SimpleDeserializer@a613f8
- org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
- Set value Hello test in target
org.apache.axis.message.RPCParamTarget@16921fd
- 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 org.apache.axis.encoding.ser.SimpleDeserializer@3411a
- NSPush (32)
- Exit: DeserializationContext::startElement()
- Enter: DeserializationContext::endElement(, s-gensym5)
- org.apache.axis.i18n.resource::handleGetObject(popHandler00)
- Popping handler org.apache.axis.encoding.ser.SimpleDeserializer@3411a
- org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
- Set value second string in target
org.apache.axis.message.RPCParamTarget@1a7508a
- 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 org.apache.axis.message.RPCHandler@17e121c
- 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:atmanes@gmail.com]
--> 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 <ma...@fnal.gov> 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
--> >
--> >
-->
Re: SOAP::Lite interoperability question
Posted by Anne Thomas Manes <at...@gmail.com>.
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 <ma...@fnal.gov> 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: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>
>
> 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
>
>