Ashraf Moosa wrote:
HI

I am using apache Tuscany 1.6 and I am trying to deploy the holder-ws-service sample to tomcat.

My composite is as follows:

<?xml version="1.0" encoding="UTF-8"?>

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0";

                targetNamespace="http://orderservice";

                xmlns:hw="http://orderservice";

    name="orderws">

    <component name="OrderServiceComponent">

<implementation.java class="org.example.orderservice.OrderServiceImpl" />

                    <service name="OrderService">

<binding.ws wsdlLocation="orderservice.wsdl" wsdlElement="http://www.example.org/OrderService/#wsdl.port(OrderService/OrderServiceSOAP)" />

                    </service>

    </component>

</composite>

The wsdl is the same from the sample:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!--

    * Licensed to the Apache Software Foundation (ASF) under one

    * or more contributor license agreements.  See the NOTICE file

    * distributed with this work for additional information

    * regarding copyright ownership.  The ASF licenses this file

    * to you under the Apache License, Version 2.0 (the

    * "License"); you may not use this file except in compliance

    * with the License.  You may obtain a copy of the License at

    *

    *   http://www.apache.org/licenses/LICENSE-2.0

    *

    * Unless required by applicable law or agreed to in writing,

    * software distributed under the License is distributed on an

    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

    * KIND, either express or implied.  See the License for the

    * specific language governing permissions and limitations

* under the License.
-->

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:tns="http://www.example.org/OrderService/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="OrderService" targetNamespace="http://www.example.org/OrderService/";>

    <wsdl:types>

        <xsd:schema targetNamespace="http://www.example.org/OrderService/";>

            <xsd:complexType name="order">

                <xsd:sequence>

<xsd:element name="customerId" type="xsd:string" minOccurs="0" />

<xsd:element name="status" type="tns:status" minOccurs="0" />

                    <xsd:element name="total" type="xsd:double" />

                    <xsd:element name="orderId" type="xsd:int" />

                </xsd:sequence>

            </xsd:complexType>

            <xsd:simpleType name="status">

                <xsd:restriction base="xsd:string">

                    <xsd:enumeration value="Created" />

                    <xsd:enumeration value="Submitted" />

                    <xsd:enumeration value="Approved" />

                    <xsd:enumeration value="Rejected" />

                </xsd:restriction>

            </xsd:simpleType>

            <xsd:element name="reviewOrder">

                <xsd:complexType>

                    <xsd:sequence>

                        <xsd:element name="myData" type="tns:order"

                            minOccurs="1" maxOccurs="1" />

                    </xsd:sequence>

                </xsd:complexType>

            </xsd:element>

            <xsd:element name="reviewOrderResponse">

                <xsd:complexType>

                    <xsd:sequence>

                        <xsd:element name="myData" type="tns:order"

                            minOccurs="1" maxOccurs="1" />

                    </xsd:sequence>

                </xsd:complexType>

            </xsd:element>

        </xsd:schema>

    </wsdl:types>

    <wsdl:message name="reviewOrderRequest">

        <wsdl:part element="tns:reviewOrder" name="myParameters"/>

    </wsdl:message>

    <wsdl:message name="reviewOrderResponse">

        <wsdl:part element="tns:reviewOrderResponse" name="myResult"/>

    </wsdl:message>

    <wsdl:portType name="OrderService">

        <wsdl:operation name="reviewOrder">

            <wsdl:input message="tns:reviewOrderRequest"/>

            <wsdl:output message="tns:reviewOrderResponse"/>

        </wsdl:operation>

    </wsdl:portType>

    <wsdl:binding name="OrderServiceSOAP" type="tns:OrderService">

<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation name="reviewOrder">

<soap:operation soapAction="http://www.example.org/OrderService/reviewOrder"/>

            <wsdl:input>

                <soap:body use="literal"/>

            </wsdl:input>

            <wsdl:output>

                <soap:body use="literal"/>

            </wsdl:output>

        </wsdl:operation>

    </wsdl:binding>

    <wsdl:service name="OrderService">

        <wsdl:port binding="tns:OrderServiceSOAP" name="OrderServiceSOAP">

<soap:address location="http://localhost:8080/orderws/OrderService"/>

        </wsdl:port>

    </wsdl:service>

</wsdl:definitions>

The code builds and deploys perfect in tomcat 6.0.26. When I point my browser to

http://localhost:8080/orderws/OrderService?wsdl

I get this

<wsdl:definitions name="OrderServiceComponent.OrderService" targetNamespace="http://www.example.org/OrderServiceComponent/OrderService";>

<wsdl:import namespace="http://www.example.org/OrderService/"; location="/orderws/OrderService?wsdl=orderservice.wsdl">

    </wsdl:import>

−

<wsdl:service name="OrderServiceService">

−

<wsdl:port name="OrderServiceSOAP" binding="ns0:OrderServiceSOAP">

<SOAP11:address location="http://localhost:8080/orderws/OrderService"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

How can I get the wsdl to display when I type in - http://localhost:8080/orderws/OrderService?wsdl

Instead of having to type http://localhost:8080/orderws/OrderService?wsdl=orderservice.wsdl

Hi Ashraf,
There's no way to change what Tuscany returns from
  http://localhost:8080/orderws/OrderService?wsdl
The wsdl that Tuscany returns is correct and should be consumable by
any tool that can handle WSDL and resolve WSDL imports.

The wsdl that Tuscany returns conforms with the naming recommendations
(for service, port, etc.) in the SCA Web Service Binding 1.0 specification
and should work fine for invoking the SCA service endpoint that you have
deployed to Tomcat.  Is there some problem because the wsdl returned at
runtime isn't physically identical to the wsdl that you used in the
component definition?

  Simon

Reply via email to