[
https://issues.apache.org/jira/browse/TUSCANY-2298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12594983#action_12594983
]
Simon Nash commented on TUSCANY-2298:
-------------------------------------
The problem is in the start() method of Axis2ServiceProvider. This should
create multiple Axis services if there are multiple compatible ports on the
WSDL service. (See the TODO: comment already in this code.)
> Incorrect service endpoint when wsdl.service is used with Service webservice
> binding
> ------------------------------------------------------------------------------------
>
> Key: TUSCANY-2298
> URL: https://issues.apache.org/jira/browse/TUSCANY-2298
> Project: Tuscany
> Issue Type: Bug
> Components: Java SCA Axis Binding Extension, Java SCA Tomcat
> Integration
> Affects Versions: Java-SCA-1.2
> Reporter: Vamsavardhana Reddy
> Fix For: Java-SCA-Next
>
>
> Web Service Binding Specification Spec v1.00 - Sec 2.1 - lines 38 to 41:
> 38 o 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.
> When wsdlElement is of 'Service' type, service must be available on all ports
> corresponding to the service. The following is the wsdl I am using for
> 'AService':
> {code}
> <?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>
> {code}
> The following is my composite file:
> {code}
> <?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)"/>
> </service>
> </component>
> </composite>
> {code}
> I am running the service as part of a vtest using "tuscany-host-tomcat".
> Since I am using wsdl.service in the service binding, I would expect the
> service to be available at http://localhost:8080/AService,
> http://localhost:8012/AService and http://localhost:8011/AService as
> specified in the wsdl file. But, I am noticing that the service is available
> at http://localhost:8080/AComponent .
> See http://www.mail-archive.com/[email protected]/msg31222.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.