0 Replies Latest reply on Jun 27, 2008 7:34 AM by jayasreeb

    Could not find route for exchange: InOut Error

    jayasreeb

      Hi,

       

      I have created webservice (Helloservice) in Fuse ESB by following cxf-wsdl-first example.

      When I execute http://localhost:9090/hello/?wsdl in browser I am able to the see the wsdl file.

       

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

      - <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://swebservice.samples.servicemix.apache.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HelloTestService" targetNamespace="http://swebservice.samples.servicemix.apache.org/">

      - <wsdl:types>

      - <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://swebservice.samples.servicemix.apache.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://swebservice.samples.servicemix.apache.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

        <xsd:element name="sayHello" type="tns:sayHello" />

      - <xsd:complexType name="sayHello">

      + <xsd:sequence>

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

        </xsd:sequence>

        </xsd:complexType>

        <xsd:element name="sayHelloResponse" type="tns:sayHelloResponse" />

      - <xsd:complexType name="sayHelloResponse">

      - <xsd:sequence>

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

        </xsd:sequence>

        </xsd:complexType>

        </xsd:schema>

        </wsdl:types>

      - <wsdl:message name="sayHello">

        <wsdl:part element="tns:sayHello" name="parameters" />

        </wsdl:message>

      - <wsdl:message name="sayHelloResponse">

        <wsdl:part element="tns:sayHelloResponse" name="parameters" />

        </wsdl:message>

      - <wsdl:portType name="HelloTest">

      - <wsdl:operation name="sayHello">

        <wsdl:input message="tns:sayHello" name="sayHello" />

        <wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse" />

        </wsdl:operation>

        </wsdl:portType>

      - <wsdl:binding name="HelloTestServiceSoapBinding" type="tns:HelloTest">

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

      - <wsdl:operation name="sayHello">

        <soap:operation soapAction="" style="document" />

      - <wsdl:input name="sayHello">

        <soap:body use="literal" />

        </wsdl:input>

      - <wsdl:output name="sayHelloResponse">

        <soap:body use="literal" />

        </wsdl:output>

        </wsdl:operation>

        </wsdl:binding>

      - <wsdl:service name="HelloTestService">

      - <wsdl:port binding="tns:HelloTestServiceSoapBinding" name="HelloTestPort">

        <soap:address location="http://localhost:9090/hello/" />

        </wsdl:port>

        </wsdl:service>

        </wsdl:definitions>

       

      My requirement is to invoke this Fuse web service from Axis 1.4.So I have created Axis client stubs by mentioning the above url and got the following classess.I used following command to get the client stubs.

       

      java org.apache.axis.wsdl.WSDL2Java http://localhost:9090/hello/?wsdl -p esri.aws.v2006 -v

       

      Following classes got generated :

       

      HelloTest.java

      HelloTestService.java

      HelloTestServiceLocator.java

      HelloTestServiceSoapBindingStub.java

       

      I created a test class to access the java method sayHello() which is defined in Fuse Webservice.

       

            

      public static void main(String args[]){

           System.out.println("inside main of client test");

           HelloTestService hts = new HelloTestServiceLocator();

           //HelloTest ht = hts.getHelloTestPort();

           try{

                String output = hts.getHelloTestPort().sayHello("sree");

                System.out.println("output---"+output);

           }catch(Exception e){

                System.out.println("inside exception---"+e);

           }

            

      }

       

      I got the following error message..

       

       

      Could not find route for exchange: InOut[

        id: ID:10.66.177.114-11ac9aa023d-2:0

        status: Active

        role: provider

        interface: HelloTest

        service: HelloTestService

        operation: sayHello

        in:

      ] for service: HelloTestService and interface: HelloTest

       

       

      Could you please guide me in resolving this?

       

      I would like to know whether we can invoke Fuse webservice from AXIS?If so what are the steps required to do it?

       

      Jayasree.B