Vamsavardhana Reddy wrote:
Opening different ports by the hosting environment does not seem to be a
problem because when I use
<service name="AService">
<binding.ws name="p11" wsdlElement="
http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.port(AService/AServiceSOAP11port_http)
"/>
<binding.ws name="p12" wsdlElement="
http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.port(AService/AServiceSOAP12port_http)
"/>
</service>
The service is available at http://localhost:8011/AService and
http://localhost:8012/AService
Which hosting environment did you use when testing this? It would
not work if the hosting environment were a webapp container.
Simon
++Vamsi
On Wed, May 7, 2008 at 3:25 AM, Simon Nash <[EMAIL PROTECTED]> wrote:
Vamsavardhana Reddy wrote:
I have my AService with wsdl given below:
<?xml version="1.0" encoding="UTF-8"?>
<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 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:schema>
</wsdl:types>
<wsdl:message name="getGreetingsRequest">
<wsdl:part name="parameters" element="ns0:getGreetings">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getGreetingsResponse">
<wsdl:part name="parameters" element="ns0:getGreetingsResponse">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="AServicePortType">
<wsdl:operation name="getGreetings">
<wsdl:input message="ns0:getGreetingsRequest"
wsaw:Action="urn:getGreetings">
</wsdl:input>
<wsdl:output message="ns0:getGreetingsResponse"
wsaw:Action="urn:getGreetingsResponse">
</wsdl:output>
</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:8090/AService"/>
</wsdl:port>
</wsdl:service>
<wsdl:service name="AService">
<wsdl:port name="AServiceHttpport" binding="ns0:AServiceHttpBinding">
<http:address location="http://localhost:8080/AService"/>
</wsdl:port>
<wsdl:port name="AServiceSOAP12port_http"
binding="ns0:AServiceSOAP12Binding">
<soap12:address location="http://localhost:8012/AService"/>
</wsdl:port>
<wsdl:port name="AServiceSOAP11port_http"
binding="ns0:AServiceSOAP11Binding">
<soap:address location="http://localhost:8011/AService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
--------
I have my composite one.composite as given below:
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://vtest"
name="one">
<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.service(AService)<http://wsbinding.vtest.sca.tuscany.apache.org#wsdl.service%28AService%29>
"/>
</service>
</component>
</composite>
--------
Should the service be available on http://localhost:8080/AService,
http://localhost:8012/AService and http://localhost:8011/AService ?
With
the current implementation, the service is available on
http://localhost:8080/AComponent.
This seems like a bug to me. The endpoints in the WSDL should
take precedence over those calculated using the default algorithm
(this seems be where http://localhost:8080/AComponent is coming
from). However, I'm not sure if the port numbers in the WSDL
can always be exposed as written. This would depend on what
hosting environment is used, and what ports it is able to open.
Simon
++Vamsi
On Tue, May 6, 2008 at 10:50 PM, Simon Nash <[EMAIL PROTECTED]> wrote:
Lou Amodeo wrote:
I am reading the WS Binding Specification and am trying to understand
the
meaning of the wsdl.service form of the WSDL Element's URI and to
what
extent and how it is supported in Tuscany? Thanks for your help.
Service:
39 <WSDL-namespace-URI>#wsdl.service(<service-name>)
40 In this case, all the endpoints in the WSDL Service that have
equivalent
PortTypes with
41 the SCA service or reference must be available to the SCA service
or
reference.
To answer this, I'll start by talking about SCA services, as
the meaning in this case seems clearer.
Suppose the WSDL document for an SCA service refers to a WSDL
service Service1 that has WSDL ports Port1, Port2 and Port3.
Port1 and Port3 use bindings that refer to PortType1, and Port2
uses a binding that refers to PortType2. The interface of the
SCA service is either the WSDL interface PortType1, or a Java
interface that's equivalent to PortType1. In this case, the
SCA service would be listening on both Port1 and Port3 (but
not Port2).
I'm having trouble applying this to references, though. A
reference would normally only invoke via one port. I'm not sure
how an SCA reference that specifies the WSDL service described
above could make use of both Port1 amd Port3.
Simon