Could not find route for exchange: InOut Error
jayasreeb Jun 27, 2008 7:34 AMHi,
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