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

Reply via email to