Loading ...
Sorry, an error occurred while loading the content.

Re: [soaplite] Soap::Lite and WASP

Expand Messages
  • Byrne Reese
    WSDL Support is not currently being maintained via the - service subroutine. It is something that I would like to focus on, but have instead turned my
    Message 1 of 2 , Apr 11, 2004
    • 0 Attachment
      WSDL Support is not currently being maintained via the ->service
      subroutine.

      It is something that I would like to focus on, but have instead turned
      my attention to wsdl2perl - which has been sometime since I have worked
      on it (to be truthful). I am hoping to find time this summer to work on
      it so that it is working prior to OSCON in July.

      As for your bug, I might try using the ->uri() subroutine in combination
      with ->service and see if that works.

      bklingen wrote:

      > I'm trying to get SOAP::Lite client to work with WASP 4.7.1 server.
      > I'm running a sample with the following client:
      > --------------------------------------------------------------
      > !/usr/bin/perl -w
      >
      > # use SOAP::Lite soapversion => '1.2' => +trace;
      > use SOAP::Lite soapversion => '1.1' => +trace;
      >
      > my $s =
      > SOAP::Lite
      > -> service('http://127.0.0.2:6060/demo/basic/HelloService/wsdl');
      >
      >
      > my $r = $s-> hello(SOAP::Data->name(p0 => "world"))
      > -> result;
      >
      >
      > print STDERR "==> after call\n";
      > print STDERR "result ==> $r\n\n";
      > --------------------------------------------------------
      >
      > I get the following result, seems like the <hello xmlns=""> is not
      > correct:
      >
      > SOAP::Transport::HTTP::Client::send_receive: HTTP::Request=HASH(0x8676254)
      > SOAP::Transport::HTTP::Client::send_receive: POST
      > http://127.0.0.2:6060/demo/basic/HelloService HTTP/1.1
      > Accept: text/xml
      > Accept: multipart/*
      > Content-Length: 452
      > Content-Type: text/xml; charset=utf-8
      > SOAPAction:
      > "http://systinet.com/wsdl/demo/basic/hello/server/HelloService#hello?KExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzs="
      >
      > <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
      > xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
      > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
      > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
      > xmlns:xsd="http://www.w3.org/1999/XMLSchema"
      > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      > <SOAP-ENV:Body>
      > <hello xmlns="">
      > <p0 xsi:type="xsd:string">world</p0>
      > </hello>
      > </SOAP-ENV:Body>
      > </SOAP-ENV:Envelope>
      > SOAP::Transport::HTTP::Client::send_receive:
      > HTTP::Response=HASH(0x867bab0)
      > SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal
      > Server Error
      > Connection: close
      > Date: Tue, 06 Apr 2004 16:18:08 GMT
      > Server: Systinet WASP Server for Java/4.7.1 (Java/1.4.1; Linux/2.4.20-4GB)
      > Content-Type: text/xml;charset=UTF-8
      > Client-Date: Tue, 06 Apr 2004 16:18:12 GMT
      > Client-Peer: 127.0.0.2:6060
      > Client-Response-Num: 1
      > SOAPAction: ""
      >
      > <?xml version="1.0" encoding="UTF-8"?>
      > <e:Envelope
      > xmlns:e="http://schemas.xmlsoap.org/soap/envelope/"><e:Body><f0:Fault
      > xmlns:f0="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>f0:Server</faultcode><faultstring>Unknown
      > element
      > hello</faultstring><detail><n0:idoox-java-mapping.org.idoox.xmlrpc.MessageProcessingException
      > xmlns:n0="urn:idoox-java-mapping"><n0:stack-trace>org.idoox.xmlrpc.MessageProcessingException:
      > Unknown element hello
      > at
      > org.idoox.wasp.wsdl.SOAPMethodInfo$RequiredElements$Invocation.notNillElement(SOAPMethodInfo.java:1049)
      > at
      > com.systinet.wasp.server.adaptor.JavaInvoker.fillCallParamsXml(JavaInvoker.java:1118)
      > at
      > com.systinet.wasp.server.adaptor.JavaInvoker.beginInvoke(JavaInvoker.java:464)
      > at
      > com.idoox.wasp.server.adaptor.JavaAdaptorImpl.beginInvoke(JavaAdaptorImpl.java:63)
      > at
      > com.idoox.wasp.server.AdaptorTemplate.javaInvocation(AdaptorTemplate.java:318)
      > at
      > com.idoox.wasp.server.AdaptorTemplate.doDispatch(AdaptorTemplate.java:252)
      > at
      > com.idoox.wasp.server.AdaptorTemplate.dispatch(AdaptorTemplate.java:191)
      > at
      > com.idoox.wasp.server.ServiceConnector.dispatch(ServiceConnector.java:356)
      > at
      > com.systinet.wasp.ServiceManagerImpl.dispatchRequest(ServiceManagerImpl.java:550)
      > at
      > com.systinet.wasp.ServiceManagerImpl.dispatch(ServiceManagerImpl.java:428)
      > at
      > com.systinet.wasp.ServiceManagerImpl$DispatcherConnHandler.handlePost(ServiceManagerImpl.java:2381)
      > at
      > com.idoox.transport.http.server.Jetty$WaspHttpHandler.handle(Jetty.java:97)
      > at com.mortbay.HTTP.HandlerContext.handle(HandlerContext.java:1087)
      > at com.mortbay.HTTP.HttpServer.service(HttpServer.java:675)
      > at com.mortbay.HTTP.HttpConnection.service(HttpConnection.java:457)
      > at com.mortbay.HTTP.HttpConnection.handle(HttpConnection.java:317)
      > at
      > com.mortbay.HTTP.SocketListener.handleConnection(SocketListener.java:99)
      > at com.mortbay.Util.ThreadedServer.handle(ThreadedServer.java:254)
      > at
      > com.mortbay.Util.ThreadPool$PoolThreadRunnable.run(ThreadPool.java:607)
      > at java.lang.Thread.run(Thread.java:536)
      > </n0:stack-trace></n0:idoox-java-mapping.org.idoox.xmlrpc.MessageProcessingException></detail></f0:Fault></e:Body></e:Envelope>
      > ---------------------------------------------------------------------
      >
      > a JAVA soap client generates the following:
      >
      >
      >
      > <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      > <e:Envelope xmlns:d="http://www.w3.org/2001/XMLSchema"
      > xmlns:e="http://schemas.xmlsoap.org/soap/envelope/"
      > xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
      > xmlns:wn0="http://systinet.com/xsd/SchemaTypes/">
      > <e:Body>
      > <wn0:p0 i:type="d:string">world</wn0:p0>
      > </e:Body>
      > </e:Envelope>
      > ---------------------------------------------------------------------
      >
      > And the WSDL is the following:
      >
      > <?xml version='1.0' encoding='utf-8' ?>
      > <definitions name='demo.basic.hello.server.HelloService'
      > targetNamespace='http://systinet.com/wsdl/demo/basic/hello/server/'
      > xmlns:tns='http://systinet.com/wsdl/demo/basic/hello/server/'
      > xmlns:soap12='http://schemas.xmlsoap.org/wsdl/soap12/'
      > xmlns:ns0='http://systinet.com/xsd/SchemaTypes/'
      > xmlns:ns1='http://idoox.com/interface'
      > xmlns:map='http://systinet.com/mapping/'
      > xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
      > xmlns='http://schemas.xmlsoap.org/wsdl/'>
      > <types>
      > <schema elementFormDefault="qualified"
      > targetNamespace="http://idoox.com/interface"
      > xmlns="http://www.w3.org/2001/XMLSchema"
      > xmlns:tns="http://idoox.com/interface">
      > <complexType name="serviceReference">
      > <sequence>
      > <element name="service" type="QName"/>
      > <element name="wsdl" type="anyURI"/>
      > <element minOccurs="0" name="instanceID"
      > type="string"/>
      > <element minOccurs="0" name="portTypeMappings"
      > type="tns:ArrayOfInterfaceMapping"/>
      > </sequence>
      > </complexType>
      > <complexType name="ArrayOfInterfaceMapping">
      > <sequence>
      > <element maxOccurs="unbounded" minOccurs="0"
      > name="item"
      > type="tns:interfaceMapping"/>
      > </sequence>
      > </complexType>
      > <complexType name="interfaceMapping">
      > <sequence>
      > <element name="portType" type="QName"/>
      > <element name="className" type="string"/>
      > </sequence>
      > </complexType>
      > <element name="instance">
      > <annotation>
      >
      > <documentation>
      > this is the SOAP header schema
      > this SOAP header SHOULD have soap-env:mustUnderstand set to
      > "1"
      > this header MUST be present at most once in any message
      > </documentation>
      > </annotation>
      > <complexType>
      > <choice>
      > <element name="id" type="string"/>
      > <element name="setId" type="string"/>
      > <element name="notFound" type="string"/>
      > </choice>
      > </complexType>
      > </element>
      > </schema>
      >
      > <xsd:schema elementFormDefault="qualified"
      > targetNamespace="http://systinet.com/xsd/SchemaTypes/"
      > xmlns:map="http://systinet.com/mapping/"
      > xmlns:ns0="http://systinet.com/xsd/SchemaTypes/"
      > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      > xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
      > xmlns:tns="http://systinet.com/xsd/SchemaTypes/"
      > xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      > <xsd:element name="p0" nillable="true" type="xsd:string"/>
      > <xsd:element name="string_Response" nillable="true"
      > type="xsd:string"/>
      > </xsd:schema>
      >
      > </types>
      > <message name='HelloService_hello_Response_Soap'>
      > <part name='response' element='ns0:string_Response'/>
      > </message>
      > <message name='HelloService_hello__Request_Soap'>
      > <part name='p0' element='ns0:p0'/>
      > </message>
      > <message name='runtimeHeaders_0'>
      > <part name='header_0' element='ns1:instance'/>
      > </message>
      > <portType name='HelloService'>
      > <operation name='hello' parameterOrder='p0'>
      > <input message='tns:HelloService_hello__Request_Soap'/>
      > <output message='tns:HelloService_hello_Response_Soap'/>
      > </operation>
      > </portType>
      > <binding name='HelloService' type='tns:HelloService'>
      > <soap:binding transport='http://schemas.xmlsoap.org/soap/http'
      > style='document'/>
      > <operation name='hello'>
      > <map:java-operation name='hello'
      > signature='KExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzs='/>
      > <soap:operation
      > soapAction='http://systinet.com/wsdl/demo/basic/hello/server/HelloService#hello?KExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzs='
      > style='document'/>
      > <input>
      > <soap:body parts='p0' use='literal'/>
      > </input>
      > <output>
      > <soap:body parts='response' use='literal'/>
      > </output>
      > </operation>
      > </binding>
      > <binding name='HelloService_SOAP12' type='tns:HelloService'>
      > <soap12:binding
      > transport='http://schemas.xmlsoap.org/soap/http' style='document'/>
      > <operation name='hello'>
      > <map:java-operation name='hello'
      > signature='KExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzs='/>
      > <soap12:operation
      > soapAction='http://systinet.com/wsdl/demo/basic/hello/server/HelloService#hello?KExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzs='
      > style='document'/>
      > <input>
      > <soap12:body parts='p0' use='literal'/>
      > </input>
      > <output>
      > <soap12:body parts='response' use='literal'/>
      > </output>
      > </operation>
      > </binding>
      > <service name='HelloService'>
      > <port name='HelloService' binding='tns:HelloService'>
      > <soap:address
      > location='http://localhost:6060/demo/basic/HelloService'/>
      > </port>
      > <port name='HelloService_SOAP12'
      > binding='tns:HelloService_SOAP12'>
      > <soap12:address
      > location='http://localhost:6060/demo/basic/HelloService'/>
      > </port>
      > </service>
      > </definitions>
      > ----------------------------------------------------------------------
      >
      >
      > Any hints on what is going on? When I try using the SOAP 1.2
      > interface I get an envelope mismatch (WASP wants 2003 schemas). Any
      > help would be appreciated. Thanks.
      >
      >
      > BJ Klingenberg
      > bj@...
      >
      >
      > ------------------------------------------------------------------------
      > *Yahoo! Groups Links*
      >
      > * To visit your group on the web, go to:
      > http://groups.yahoo.com/group/soaplite/
      >
      > * To unsubscribe from this group, send an email to:
      > soaplite-unsubscribe@yahoogroups.com
      > <mailto:soaplite-unsubscribe@yahoogroups.com?subject=Unsubscribe>
      >
      > * Your use of Yahoo! Groups is subject to the Yahoo! Terms of
      > Service <http://docs.yahoo.com/info/terms/>.
      >
      >
    Your message has been successfully submitted and would be delivered to recipients shortly.