On 2010-1-20, at 上午1:51, Qi Zhao wrote:
Hey everyone
I create a SOAP first case (base cxf-wsdl-first),running the
following error
occurred during the,I Servicemix version 3.3.1 .
Here's my fault error message :
WARN - DefaultBroker - ServiceName
({http://servicemix.apache.
org/examples}HelloService) specified for routing, but can't find it
registered
WARN - DefaultBroker - InterfaceName
({http://servicemix.apach
e.org/examples}Hello) specified for routing, but can't find any
matching
compone
nts
WARN - DefaultBroker - ServiceName
({http://servicemix.apache.
org/examples}HelloService) specified for routing, but can't find it
registered
WARN - DefaultBroker - InterfaceName
({http://servicemix.apach
e.org/examples}Hello) specified for routing, but can't find any
matching
compone
nts
INFO - PhaseInterceptorChain - Interceptor has thrown
exception,
unwin
ding now Could not find route for exchange: InOut[
id: ID:169.254.17.84-126476b2428-4:1
status: Active
role: provider
interface: {http://servicemix.apache.org/examples}Hello
service: {http://servicemix.apache.org/examples}HelloService
operation: {http://servicemix.apache.org/examples}SayHello
in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.
sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://servicemix.apache.org/exam
ples" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/
2001/XMLSchema-instance" name="SayHelloRequest"
type="msg:SayHelloRequest"
versi
on="1.0"><jbi:part><tns:SayHello
xmlns:tns="http://servicemix.apache.org/example
s/types">
<tns:name>lada</tns:name>
</tns:SayHello></jbi:part></jbi:message>
] for service: {http://servicemix.apache.org/examples}HelloService and
interface
: {http://servicemix.apache.org/examples}Hello
this's my WSDL:
<wsdl:definitions name="hello"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://servicemix.apache.org/examples"
xmlns:typens="http://servicemix.apache.org/examples/types"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
targetNamespace="http://servicemix.apache.org/examples">
<wsdl:types>
<xsd:schema
targetNamespace="http://servicemix.apache.org/examples/types"
elementFormDefault="qualified">
<xsd:element name="SayHello">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SayHelloResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="UnknownWordFault">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="word" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="SayHelloRequest">
<wsdl:part name="payload" element="typens:SayHello" />
</wsdl:message>
<wsdl:message name="SayHelloResponse">
<wsdl:part name="payload" element="typens:SayHelloResponse" />
</wsdl:message>
<wsdl:message name="UnknownWordFault">
<wsdl:part name="payload" element="typens:UnknownWordFault" />
</wsdl:message>
<wsdl:portType name="Hello">
<wsdl:operation name="SayHello">
<wsdl:input message="tns:SayHelloRequest" />
<wsdl:output message="tns:SayHelloResponse" />
<wsdl:fault name="UnknownWord"
message="tns:UnknownWordFault" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloSOAPBinding" type="tns:Hello">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="SayHello" >
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
<wsdl:fault name="UnknownWord">
<soap:fault use="literal" name="UnknownWord" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="HelloService">
<wsdl:port binding="tns:HelloSOAPBinding" name="soap" >
<soap:address location="http://localhost:8092/
HelloService/" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
bc-su's xbean.xml :
<beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:person="http://servicemix.apache.org/samples/wsdl-first">
<cxfbc:consumer wsdl="classpath:person.wsdl"
targetService="person:PersonService"
targetInterface="person:Person"/>
</beans>
Hi,
Your bc su's xbean.xml is incorrect, it should use the namespace
targetService and targetInterface for cxf se, so it should be
<beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:person="http://servicemix.apache.org/examples">
<cxfbc:consumer wsdl="classpath:person.wsdl"
targetService="person:HelloService"
targetInterface="person:Hello"/>
</beans>
Freeman
se-su's xbean.xml:
<beans xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0">
<cxfse:endpoint>
<cxfse:pojo>
<bean
class="org.apache.servicemix.samples.wsdl_first.PersonImpl"
/>
</cxfse:pojo>
</cxfse:endpoint>
</beans>
se-su's HelloImpl.java :
package org.apache.servicemix.examples;
import javax.jws.WebService;
import javax.xml.ws.Holder;
import org.apache.servicemix.examples.types.SayHello;
import org.apache.servicemix.examples.types.SayHelloResponse;
@WebService(name = "HelloService", targetNamespace =
"http://servicemix.apache.org/examples", endpointInterface =
"org.apache.servicemix.examples.Hello")
public class HelloImpl implements Hello {
public void sayHello(Holder<String> name) throws UnknownWordFault {
if (name.value == null || name.value.length() == 0) {
org.apache.servicemix.examples.types.UnknownWordFault
fault
= new org.apache.servicemix.examples.types.UnknownWordFault();
throw new UnknownWordFault(null, fault);
}
name.value = "Hi " + name.value;
}
}
Thank you for your help~~~~~~~~Urgent,Urgent.
--
View this message in context:
http://old.nabble.com/Interceptor-has-thrown-exception%2C-unwin-ding-now-Could-not-find-route-for-exchange-tp27229753p27229753.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com