You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by Michael Dehmlow <de...@gmail.com> on 2009/09/21 18:40:39 UTC

SEVERE: No WSDL interface definition for MyService

I'm Having a hard time creating a Web Service using Tuscany and the Eclipse
IDE:

My Composite is as follows:

<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:hw="
http://math.company.com" name="calculator" targetNamespace="
http://com.company.math">
  <component name="AServiceComponent">
    <implementation.java class="com.company.math.MathServerImpl"/>
    <service name="MathService">
      <interface.wsdl wsdlLocation="MathService.wsdl" interface="
http://math.company.com#wsdl.interface(MathServer)"/>
      <binding.ws uri="http://localhost:8085/ms"/>
    </service>
  </component>
</composite>


My WSDL Is as such:

<?xml version="1.0" encoding="UTF-8"?>
<!--
    * 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.
-->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://math.company.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="
http://schemas.xmlsoap.org/soap/encoding/" name="MathService"
targetNamespace="http://math.company.com/">
    <message name="add">
        <part name="arg0" type="xsd:int"/>
        <part name="arg1" type="xsd:long"/>
    </message>
    <message name="subtract">
        <part name="arg0" type="xsd:int"/>
        <part name="arg1" type="xsd:long"/>
    </message>
    <message name="multiply">
        <part name="arg0" type="xsd:int"/>
        <part name="arg1" type="xsd:long"/>
    </message>
    <message name="divide">
        <part name="arg0" type="xsd:int"/>
        <part name="arg1" type="xsd:long"/>
    </message>
    <message name="mathResponse">
        <part name="return" type="xsd:long"/>
    </message>
    <portType name="MathServer">
        <operation name="add">
            <input message="tns:add"/>
            <output message="tns:mathResponse"/>
        </operation>
        <operation name="subtract">
            <input message="tns:subtract"/>
            <output message="tns:mathResponse"/>
        </operation>
        <operation name="multiply">
            <input message="tns:multiply"/>
            <output message="tns:mathResponse"/>
        </operation>
        <operation name="divide">
            <input message="tns:divide"/>
            <output message="tns:mathResponse"/>
        </operation>
    </portType>
    <binding name="MathPortBinding" type="tns:MathServer">
        <soap:binding style="rpc" transport="
http://schemas.xmlsoap.org/soap/http"/>
        <operation name="add">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </input>
            <output>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </output>
        </operation>
        <operation name="subtract">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </input>
            <output>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </output>
        </operation>
        <operation name="multiply">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </input>
            <output>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </output>
        </operation>
        <operation name="divide">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </input>
            <output>
                <soap:body use="literal" namespace="http://math.company.com/
"/>
            </output>
        </operation>
    </binding>
    <service name="MathService">
        <port name="MathPort" binding="tns:MathPortBinding">
            <soap:address location="http://localhost:9989/ms"/>
        </port>
    </service>
</definitions>

I have successfully used the above prototype app to run using JAX-WS in java
core 6 but when I run the this using the SCA plug-in I get:

Deploying calculator.composite...
Sep 21, 2009 10:16:07 AM org.apache.tuscany.sca.node.impl.NodeImpl <init>
INFO: Creating node: calculator.composite
Sep 21, 2009 10:16:08 AM org.apache.tuscany.sca.node.impl.NodeImpl
configureNode
INFO: Loading contribution:
file:/C:/Users/mldehmlo/TuscanyWorkspace2/Calculator/bin/
Sep 21, 2009 10:16:08 AM
org.apache.tuscany.sca.assembly.builder.impl.ComponentConfigurationBuilderImpl
WARNING: Service not found for component service: Component =
AServiceComponent Service = MathService
Sep 21, 2009 10:16:08 AM
org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingURIBuilderImpl
WARNING: Service not found for component service: Component =
AServiceComponent Service = MathService
Sep 21, 2009 10:16:08 AM
org.apache.tuscany.sca.binding.ws.wsdlgen.WSDLServiceGenerator
SEVERE: No WSDL interface definition for MathService/{2}
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at
org.eclipse.stp.sca.deployment.mains.TuscanyMain1x.main(TuscanyMain1x.java:34)
Caused by: org.osoa.sca.ServiceRuntimeException: No WSDL interface
definition for MathService/{2}
    at
org.apache.tuscany.sca.node.impl.NodeImpl.analyzeProblems(NodeImpl.java:701)
    at
org.apache.tuscany.sca.node.impl.NodeImpl.configureNode(NodeImpl.java:622)
    at org.apache.tuscany.sca.node.impl.NodeImpl.<init>(NodeImpl.java:196)
    at
org.apache.tuscany.sca.node.impl.NodeFactoryImpl.createSCANodeFromClassLoader(NodeFactoryImpl.java:37)
    at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:178)
    at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:100)
    at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:182)
    at
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:63)
...

The MathService.wsdl is in my source directory, the same package directory
as my java impl, the root directory of the project, and in a folder I
created called META-INF/wsdl.

I've tried not specifying the wsdlLocation, specifying
sdlLocation="MathService.wsdl" and specifying
wsdlLocation="META-INF/wsdl/MathService.wsdl"

Any Help? I'm using the plugin detailed here:
http://wiki.eclipse.org/STP/SCA_Component/SCA_Java_Run_and_Debug

Thanks.

Re: SEVERE: No WSDL interface definition for MyService

Posted by Simon Nash <na...@apache.org>.
Michael Dehmlow wrote:
> I'm Having a hard time creating a Web Service using Tuscany and the 
> Eclipse IDE:
> 
> My Composite is as follows:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" 
> xmlns:hw="http://math.company.com" name="calculator" 
> targetNamespace="http://com.company.math">
>   <component name="AServiceComponent">
>     <implementation.java class="com.company.math.MathServerImpl"/>
>     <service name="MathService">
>       <interface.wsdl wsdlLocation="MathService.wsdl" 
> interface="http://math.company.com#wsdl.interface(MathServer)"/>
>       <binding.ws <http://binding.ws> uri="http://localhost:8085/ms"/>
>     </service>
>   </component>
> </composite>
> 
> 
> My WSDL Is as such:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
>     * 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.   
> -->
> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
> xmlns:tns="http://math.company.com/" 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> xmlns:ns="http://schemas.xmlsoap.org/soap/encoding/" name="MathService" 
> targetNamespace="http://math.company.com/">
>     <message name="add">
>         <part name="arg0" type="xsd:int"/>
>         <part name="arg1" type="xsd:long"/>
>     </message>
>     <message name="subtract">
>         <part name="arg0" type="xsd:int"/>
>         <part name="arg1" type="xsd:long"/>
>     </message>
>     <message name="multiply">
>         <part name="arg0" type="xsd:int"/>
>         <part name="arg1" type="xsd:long"/>
>     </message>
>     <message name="divide">
>         <part name="arg0" type="xsd:int"/>
>         <part name="arg1" type="xsd:long"/>
>     </message>
>     <message name="mathResponse">
>         <part name="return" type="xsd:long"/>
>     </message>
>     <portType name="MathServer">
>         <operation name="add">
>             <input message="tns:add"/>
>             <output message="tns:mathResponse"/>
>         </operation>
>         <operation name="subtract">
>             <input message="tns:subtract"/>
>             <output message="tns:mathResponse"/>
>         </operation>
>         <operation name="multiply">
>             <input message="tns:multiply"/>
>             <output message="tns:mathResponse"/>
>         </operation>
>         <operation name="divide">
>             <input message="tns:divide"/>
>             <output message="tns:mathResponse"/>
>         </operation>
>     </portType>
>     <binding name="MathPortBinding" type="tns:MathServer">
>         <soap:binding style="rpc" 
> transport="http://schemas.xmlsoap.org/soap/http"/>
>         <operation name="add">
>             <soap:operation soapAction=""/>
>             <input>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </input>
>             <output>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </output>
>         </operation>
>         <operation name="subtract">
>             <soap:operation soapAction=""/>
>             <input>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </input>
>             <output>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </output>
>         </operation>
>         <operation name="multiply">
>             <soap:operation soapAction=""/>
>             <input>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </input>
>             <output>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </output>
>         </operation>
>         <operation name="divide">
>             <soap:operation soapAction=""/>
>             <input>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </input>
>             <output>
>                 <soap:body use="literal" 
> namespace="http://math.company.com/"/>
>             </output>
>         </operation>
>     </binding>
>     <service name="MathService">
>         <port name="MathPort" binding="tns:MathPortBinding">
>             <soap:address location="http://localhost:9989/ms"/>
>         </port>
>     </service>
> </definitions>
> 
> I have successfully used the above prototype app to run using JAX-WS in 
> java core 6 but when I run the this using the SCA plug-in I get:
> 
> Deploying calculator.composite...
> Sep 21, 2009 10:16:07 AM org.apache.tuscany.sca.node.impl.NodeImpl <init>
> INFO: Creating node: calculator.composite
> Sep 21, 2009 10:16:08 AM org.apache.tuscany.sca.node.impl.NodeImpl 
> configureNode
> INFO: Loading contribution: 
> file:/C:/Users/mldehmlo/TuscanyWorkspace2/Calculator/bin/
> Sep 21, 2009 10:16:08 AM 
> org.apache.tuscany.sca.assembly.builder.impl.ComponentConfigurationBuilderImpl
> WARNING: Service not found for component service: Component = 
> AServiceComponent Service = MathService
> Sep 21, 2009 10:16:08 AM 
> org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingURIBuilderImpl
> WARNING: Service not found for component service: Component = 
> AServiceComponent Service = MathService
> Sep 21, 2009 10:16:08 AM 
> org.apache.tuscany.sca.binding.ws.wsdlgen.WSDLServiceGenerator
> SEVERE: No WSDL interface definition for MathService/{2}
> java.lang.reflect.InvocationTargetException
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at 
> org.eclipse.stp.sca.deployment.mains.TuscanyMain1x.main(TuscanyMain1x.java:34)
> Caused by: org.osoa.sca.ServiceRuntimeException: No WSDL interface 
> definition for MathService/{2}
>     at 
> org.apache.tuscany.sca.node.impl.NodeImpl.analyzeProblems(NodeImpl.java:701)
>     at 
> org.apache.tuscany.sca.node.impl.NodeImpl.configureNode(NodeImpl.java:622)
>     at org.apache.tuscany.sca.node.impl.NodeImpl.<init>(NodeImpl.java:196)
>     at 
> org.apache.tuscany.sca.node.impl.NodeFactoryImpl.createSCANodeFromClassLoader(NodeFactoryImpl.java:37)
>     at 
> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.init(DefaultSCADomain.java:178)
>     at 
> org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:100)
>     at 
> org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:182)
>     at 
> org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:63)
> ...
> 
> The MathService.wsdl is in my source directory, the same package 
> directory as my java impl, the root directory of the project, and in a 
> folder I created called META-INF/wsdl.
> 
> I've tried not specifying the wsdlLocation, specifying 
> sdlLocation="MathService.wsdl" and specifying 
> wsdlLocation="META-INF/wsdl/MathService.wsdl"
> 
> Any Help? I'm using the plugin detailed here:
> http://wiki.eclipse.org/STP/SCA_Component/SCA_Java_Run_and_Debug
> 
> Thanks.
 >
Hi Michael,
Your WSDL file uses the namespace "http://math.company.com/".  Your
composite file uses the namespace "http://math.company.com" (no slash
at the end).  I think this is the reason for the error message.

   Simon