apache-tuscany/sandbox/sebastien/java/dynamic/itest/ws/contribution-rpc-lit
2010-07-19 02:50:53 +00:00
..
src/main Branch to experiment with dynamic component interfaces and implementations. 2010-07-19 02:50:53 +00:00
pom.xml Branch to experiment with dynamic component interfaces and implementations. 2010-07-19 02:50:53 +00:00
README Branch to experiment with dynamic component interfaces and implementations. 2010-07-19 02:50:53 +00:00

RPC Literal WSDL Style
======================

Interface
---------

@Remotable
public interface HelloWorld {
    String getGreetings(String s);
    String getGreetingsException(String s) throws ServiceRuntimeException;
    Foo getGreetingsComplex(Foo foo);
}

WSDL
----

  <types>
    <xsd:schema>
      <xsd:import namespace="http://ws.binding.sca.tuscany.apache.org/rpclit" 
                  schemaLocation="HelloWorldImplService-rpclit.xsd"/>
    </xsd:schema>
  </types>
  <message name="getGreetings">
    <part name="s" type="xsd:string"/>
  </message>
  <message name="getGreetingsResponse">
    <part name="s" type="xsd:string"/>
  </message>
  <message name="getGreetingsException">
    <part name="s" type="xsd:string"/>
  </message>
  <message name="getGreetingsExceptionResponse">
    <part name="s" type="xsd:string"/>
  </message>
  <message name="Exception">
    <part name="fault" element="tns:Exception"/>
  </message>
  <message name="getGreetingsComplex">
    <part name="foo" type="tns:foo"/>
  </message>
  <message name="getGreetingsComplexResponse">
    <part name="foo" type="tns:foo"/>
  </message>
  <portType name="HelloWorldImpl">
    <operation name="getGreetings">
      <input message="tns:getGreetings"/>
      <output message="tns:getGreetingsResponse"/>
    </operation>
    <operation name="getGreetingsException">
      <input message="tns:getGreetingsException"/>
      <output message="tns:getGreetingsExceptionResponse"/>
      <fault message="tns:Exception" name="Exception"/>
    </operation>
    <operation name="getGreetingsComplex">
      <input message="tns:getGreetingsComplex"/>
      <output message="tns:getGreetingsComplexResponse"/>
    </operation>
  </portType>
  <binding name="HelloWorldImplPortBinding" type="tns:HelloWorldImpl">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    <operation name="getGreetings">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace"/>
      </input>
      <output>
        <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace"/>
      </output>
    </operation>
    <operation name="getGreetingsException">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionNamespace"/>
      </input>
      <output>
        <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionNamespace"/>
      </output>
      <fault name="Exception">
        <soap:fault name="Exception" use="literal"/>
      </fault>
    </operation>
    <operation name="getGreetingsComplex">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>

getGreetings SOAP Request/Response
----------------------------------

POST /HelloWorldService/HelloWorld-rpclit-porttype HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
User-Agent: Axis2
Host: localhost:8088
Content-Length: 480

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soape nv:Body>
        <axis2ns1:getGreetings
            xmlns:axis2ns1="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace">
            <s xmlns:xs="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:ns2="http://ws.binding.sca.tuscany.apache.org/" 
               xsi:type="xs:string">Fred
            </s>
        </axis2ns1:getGreetings>
    </soapenv:Body>
</soapenv:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked

1FE
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soape nv:Body>
        <axis2ns4:getGreetingsResponse
            xmlns:axis2ns4="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsResponseNamespace">
            <s xmlns:xs="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:ns2="http://ws.binding.sca.tuscany.apache.org/" 
               xsi:type="xs:string">Hello Fred</s>
        </axis2ns4:getGreetingsResponse>
    </soapenv:Body>
</soapenv:Envelope>


getGreetingsException SOAP Request/Response
-------------------------------------------

POST /HelloWorldService/HelloWorld-rpclit-porttype HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
User-Agent: Axis2
Host: localhost:8088
Content-Length: 507

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soape nv:Body>
        <axis2ns5:getGreetingsException
            xmlns:axis2ns5="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionNamespace">
            <s xmlns:xs="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:ns2="http://ws.binding.sca.tuscany.apache.org/" 
               xsi:type="xs:string">Fred
            </s>
        </axis2ns5:getGreetingsException>
    </soapenv:Body>
</soapenv:Envelope>

HTTP/1.1 500 Internal Server Error
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked

133C
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soape nv:Body>
        <soapenv:Fault>
            <faultcode>soapenv:Server</faultcode>
            <faultstring>org.apache.tuscany.sca.interfacedef.util.FaultE
                xception cannot be cast to org.apache.axiom.om.OMElement</faultstring>
            <detail>
                ...
            </Exception>
            </detail>
        </soapenv:Fault>
    </soapenv:Body>
</soapenv:Envelope>

TODO - exception is wrong

getGreetingsComplex SOAP Request/Response
-----------------------------------------

POST /HelloWorldService/HelloWorld-rpclit-porttype HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
User-Agent: Axis2
Host: localhost:8088
Content-Length: 570

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soape nv:Body>
        <axis2ns7:getGreetingsComplex
            xmlns:axis2ns7="http://ws.binding.sca.tuscany.apache.org/rpclit">
            <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns:ns3="http://ws.binding.sca.tuscany.apache.org/" 
                 xmlns:ns2="http://helloworld/external"
                xsi:type="ns2:foo">
                <bars>
                    <b>true</b>
                    <s>petra</s>
                    <x>1</x>
                    <y>2</y>
                </bars>
                <bars>
                    <b>false</b>
                    <s>beate</s>
                    <x>3</x>
                    <y>4</y>
                </bars>
            </foo>
        </axis2ns7:getGreetingsComplex>
    </soapenv:Body>
</soapenv:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked

281
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soape nv:Body>
        <axis2ns10:getGreetingsComplexResponse
            xmlns:axis2ns10="http://ws.binding.sca.tuscany.apache.org/rpclit">
            <foo xm lns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:ns3="http://ws.binding.sca.tuscany.apache.org/" 
                xmlns:ns2="http://helloworld/external"
                xsi:type="ns2:foo">
                <bars>
                    <b>true</b>
                    <s>petra</s>
                    <x>1</x>
                    <y>2</y>
                </bars>
                <bars>
                    <b>false</b>
                    <s>bea
                        te</s>
                    <x>3</x>
                    <y>4</y>
                </bars>
                <bars>
                    <b>true</b>
                    <s>simon</s>
                    <x>7</x>
                    <y>8</y>
                </bars>
            </foo>
        </axis2ns10:getGreetingsComplexResponse>
    </soapenv:Body>
</soapenv:Envelope>