Vamsi,

It looks like all your failure cases require runtime Java2WSDL.   In order
to generate a doc-lit-unwrapped WSDL from Java,
the Java should contain annotation:

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

I believe this the new rewrite of the Java2WSDL code that Simon Nash did
doesn't handle this yet.   But it seems like these
tests you did will be good ones to start with when someone does get the time
to work on this.

Scott

On Fri, Jun 13, 2008 at 9:57 AM, Vamsavardhana Reddy <[EMAIL PROTECTED]>
wrote:

> My java interface: org.apache.tuscany.sca.vtest.wsbinding.AService.
>
> @Remotable
> public interface AService {
>    public String getGreetings(String name);
> }
>
> I have the following wsdl, which I assume is doc/lit/unwrapped or bare.
>
> <wsdl:definitions targetNamespace="
> http://wsbinding.vtest.sca.tuscany.apache.org";
>                  xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
>                  xmlns:ns0="http://wsbinding.vtest.sca.tuscany.apache.org";
>                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
>                  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
>                  xmlns:ns1="http://org.apache.axis2/xsd";
>                  xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
>                  xmlns:xs="http://www.w3.org/2001/XMLSchema";
>                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
>  <wsdl:types>
>    <xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified" targetNamespace="
> http://wsbinding.vtest.sca.tuscany.apache.org"; xmlns:ns="
> http://wsbinding.vtest.sca.tuscany.apache.org";>
>            <xs:element minOccurs="0" name="getGreetings" nillable="true"
> type="xs:string"/>
>            <xs:element minOccurs="0" name="getGreetingsResponse"
> nillable="true" type="xs:string"/>
>    </xs:schema>
>  </wsdl:types>
>
>  <wsdl:message name="getGreetingsRequest">
>    <wsdl:part name="parameters" element="ns0:getGreetings"/>
>  </wsdl:message>
>
>  <wsdl:message name="getGreetingsResponse">
>    <wsdl:part name="parameters" element="ns0:getGreetingsResponse"/>
>  </wsdl:message>
>
>  <wsdl:portType name="AServicePortType">
>    <wsdl:operation name="getGreetings">
>      <wsdl:input message="ns0:getGreetingsRequest"
> wsaw:Action="urn:getGreetings"/>
>      <wsdl:output message="ns0:getGreetingsResponse"
> wsaw:Action="urn:getGreetingsResponse"/>
>    </wsdl:operation>
>  </wsdl:portType>
>
>  <wsdl:binding name="AServiceSOAP12Binding" type="ns0:AServicePortType">
>    <soap12:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
>    <wsdl:operation name="getGreetings">
>      <soap12:operation soapAction="urn:getGreetings" style="document"/>
>      <wsdl:input>
>        <soap12:body use="literal"/>
>      </wsdl:input>
>      <wsdl:output>
>        <soap12:body use="literal"/>
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>
>  <wsdl:binding name="AServicePortTypeBinding" type="ns0:AServicePortType">
>    <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
>    <wsdl:operation name="getGreetings">
>      <soap:operation soapAction=""/>
>      <wsdl:input>
>        <soap:body use="literal"/>
>      </wsdl:input>
>      <wsdl:output>
>        <soap:body use="literal"/>
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>
>  <wsdl:binding name="AServiceHttpBinding" type="ns0:AServicePortType">
>    <http:binding verb="POST"/>
>    <wsdl:operation name="getGreetings">
>      <http:operation location="AService/getGreetings"/>
>      <wsdl:input>
>        <mime:content part="getGreetings" type="text/xml"/>
>      </wsdl:input>
>      <wsdl:output>
>        <mime:content part="getGreetings" type="text/xml"/>
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>
>  <wsdl:binding name="AServiceSOAP11Binding" type="ns0:AServicePortType">
>    <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
>    <wsdl:operation name="getGreetings">
>      <soap:operation soapAction="urn:getGreetings" style="document"/>
>      <wsdl:input>
>        <soap:body use="literal"/>
>      </wsdl:input>
>      <wsdl:output>
>        <soap:body use="literal"/>
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>
>  <wsdl:service name="AServicePortTypeService">
>    <wsdl:port name="AServicePortTypePort"
> binding="ns0:AServicePortTypeBinding">
>      <soap:address location="http://localhost:8080/AService"/>
>    </wsdl:port>
>  </wsdl:service>
>
>  <wsdl:service name="AService">
>    <wsdl:port name="AServiceHttpport" binding="ns0:AServiceHttpBinding">
>      <http:address location="http://localhost:8080/AService/httpport"/>
>    </wsdl:port>
>    <wsdl:port name="AServiceSOAP12port_http"
> binding="ns0:AServiceSOAP12Binding">
>      <soap12:address location="http://localhost:8080/AService/soap12port
> "/>
>    </wsdl:port>
>    <wsdl:port name="AServiceSOAP11port_http"
> binding="ns0:AServiceSOAP11Binding">
>      <soap:address location="http://localhost:8080/AService/soap11port"/>
>    </wsdl:port>
>    <wsdl:port name="AServiceSOAP12port_http_null"
> binding="ns0:AServiceSOAP12Binding">
>      <soap12:address location=""/>
>    </wsdl:port>
>    <wsdl:port name="AServiceSOAP12port_http_wsdl"
> binding="ns0:AServiceSOAP12Binding">
>      <soap12:address location="inWsdl"/>
>    </wsdl:port>
>  </wsdl:service>
> </wsdl:definitions>
>
> The following diff should tell how I got this wsdl:
>
> Index:
> D:/T/java/sca/vtest/wsbinding/service/src/main/resources/aservice.wsdl
> ===================================================================
> --- D:/T/java/sca/vtest/wsbinding/service/src/main/resources/aservice.wsdl
>  (revision 667316)
> +++ D:/T/java/sca/vtest/wsbinding/service/src/main/resources/aservice.wsdl
>  (working copy)
> @@ -29,20 +29,8 @@
>                   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
>   <wsdl:types>
>     <xs:schema attributeFormDefault="qualified"
> elementFormDefault="qualified" targetNamespace="
> http://wsbinding.vtest.sca.tuscany.apache.org"; xmlns:ns="
> http://wsbinding.vtest.sca.tuscany.apache.org";>
> -      <xs:element name="getGreetings">
> -        <xs:complexType>
> -          <xs:sequence>
> -            <xs:element minOccurs="0" name="param0" nillable="true"
> type="xs:string"/>
> -          </xs:sequence>
> -        </xs:complexType>
> -      </xs:element>
> -      <xs:element name="getGreetingsResponse">
> -        <xs:complexType>
> -          <xs:sequence>
> -            <xs:element minOccurs="0" name="return" nillable="true"
> type="xs:string"/>
> -          </xs:sequence>
> -        </xs:complexType>
> -      </xs:element>
> +            <xs:element minOccurs="0" name="getGreetings" nillable="true"
> type="xs:string"/>
> +            <xs:element minOccurs="0" name="getGreetingsResponse"
> nillable="true" type="xs:string"/>
>     </xs:schema>
>   </wsdl:types>
>
> I have tried a few combinations with interface.wsdl and wsdlElement with
> binding.ws.  Here are the cases that work (here work means, the
> clientcomponent is able to invoke the service successfully):
>
> Case-1: interface.wsdl used both with service and reference.
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <interface.wsdl interface="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface(AServicePortType)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface%28AServicePortType%29>
> "/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <interface.wsdl interface="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface(AServicePortType)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface%28AServicePortType%29>
> "/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
> Case-2: interface.java and wsdlElement on service binding.ws AND
> interface.wsdl on reference.
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <interface.java
> interface="org.apache.tuscany.sca.vtest.wsbinding.AService"/>
>            <binding.ws wsdlElement="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding(AServiceSOAP11Binding)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding%28AServiceSOAP11Binding%29>
> "
>                        uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <interface.wsdl interface="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface(AServicePortType)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface%28AServicePortType%29>
> "/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
>
> Case-3: wsdlElement on service binding.ws AND interface.wsdl on reference.
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <binding.ws wsdlElement="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding(AServiceSOAP11Binding)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding%28AServiceSOAP11Binding%29>
> "
>                        uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <interface.wsdl interface="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface(AServicePortType)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface%28AServicePortType%29>
> "/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
> Case-4: wsdlElement in binding.ws in both service and reference.
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <binding.ws wsdlElement="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding(AServiceSOAP11Binding)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding%28AServiceSOAP11Binding%29>
> "
>                        uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <binding.ws wsdlElement="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding(AServiceSOAP11Binding)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding%28AServiceSOAP11Binding%29>
> "
>                        uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
> Here are some cases that do not work:
>
> Case-D1: interface.java on service AND interface.wsdl on reference
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <interface.java
> interface="org.apache.tuscany.sca.vtest.wsbinding.AService"/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <interface.wsdl interface="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface(AServicePortType)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface%28AServicePortType%29>
> "/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
> Case-D2: interface.wsdl on service AND interface.java on reference
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <interface.wsdl interface="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface(AServicePortType)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.interface%28AServicePortType%29>
> "/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <interface.java
> interface="org.apache.tuscany.sca.vtest.wsbinding.AService"/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
>
> Case-D3: interface.java and wsdlElement in service binding.ws AND
> interface.java on reference.
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <interface.java
> interface="org.apache.tuscany.sca.vtest.wsbinding.AService"/>
>            <binding.ws wsdlElement="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding(AServiceSOAP11Binding)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding%28AServiceSOAP11Binding%29>
> "
>                        uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <interface.java
> interface="org.apache.tuscany.sca.vtest.wsbinding.AService"/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
> Case-D4: interface.java on service AND interface.java and wsdlElement on
> reference binding.ws
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; targetNamespace="
> http://vtest"; name="mywsdltest">
>
>    <component name="AComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AServiceImpl"/>
>        <service name="AService">
>            <interface.java
> interface="org.apache.tuscany.sca.vtest.wsbinding.AService"/>
>            <binding.ws uri="http://localhost:8085/AService/endpointref"/>
>        </service>
>    </component>
>    <component name="AClientComponent">
>        <implementation.java
> class="org.apache.tuscany.sca.vtest.wsbinding.impl.AClientServiceImpl"/>
>        <reference name="aService">
>            <interface.java
> interface="org.apache.tuscany.sca.vtest.wsbinding.AService"/>
>            <binding.ws wsdlElement="
>
> http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding(AServiceSOAP11Binding)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.binding%28AServiceSOAP11Binding%29>
> "
>                        uri="http://localhost:8085/AService/endpointref"/>
>        </reference>
>    </component>
> </composite>
>
> There may be a few other combinations that may work or not work.  But this
> itself got me thoroughly confused.  Can someone help me understand what is
> happening here?
>
> ++Vamsi
>

Reply via email to