You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by nvijayak <nv...@cs.indiana.edu> on 2008/01/23 00:05:11 UTC

Could not find route for exchange: InOut

Hi,

I use the following code to create a client that invokes a service

        JBIContainer container = new JBIContainer();
        container.setUseMBeanServer(false);
        container.setRmiPort(2999);
        container.setCreateMBeanServer(false);
        container.setEmbedded(true);
        container.init();
        container.start();
        ServiceMixClient client = new DefaultServiceMixClient(container);
        Destination destination =
client.createDestination("service:http://localhost:8192/PersonService/");
        InOut me = destination.createInOutExchange();

        me.getInMessage().setContent(new StringSource(
                                "<jbi:message
xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\""
                             +  "            
xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\" "
                             +  "             name=\"Hello\" "
                             +  "             type=\"msg:HelloRequest\" "
                             +  "             version=\"1.0\">"
                             +  "  <jbi:part>"
                             +  "   
<msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
                             +  "  </jbi:part>"
                             +  "</jbi:message>"));
        client.sendSync(me);

        System.err.println(new
SourceTransformer().contentToString(me.getOutMessage()));

I get the following error when I run it:

Exception in thread "main" javax.jbi.messaging.MessagingException: Could not
find route for exchange: InOut[
  id: ID:128.107.102.246-117a3b0ca5f-2:0
  status: Active
  role: provider
  service: {http://localhost:8192/PersonService}
  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/samples/wsdl-first/types"
name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>   
<msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson> 
</jbi:part></jbi:message>
] for service: {http://localhost:8192/PersonService} and interface: null
	at
org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:297)
	at
org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:830)
	at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
	at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:470)
	at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
	at
org.apache.servicemix.client.DefaultServiceMixClient.sendSync(DefaultServiceMixClient.java:155)
	at
org.apache.servicemix.examples.CRSWSEndpointTest.main(CRSWSEndpointTest.java:92)


Thanks,
Nithya
-- 
View this message in context: http://www.nabble.com/Could-not-find-route-for-exchange%3A-InOut-tp15030924s12049p15030924.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Could not find route for exchange: InOut

Posted by Freeman Fang <fr...@gmail.com>.
Hi Nithya,

You should deploy both your service (as provider) and  client proxy (as 
consumer) into same servicemix instance, unless you intend to use 
clustering.
So you shouldn't create a jbi instance your self, if you just want to 
create ServiceMixClient instance, you can do per as below
ServiceMixClient client = new ServiceMixClientFacade(context);// the 
context is ComponentContext, you can get it from any jbi component.

btw, you code
client.createDestination("service:http://localhost:8192/PersonService/");
is not correct, you need specify the service name but not the service 
address

client.createDestination("service:http://servicemix.apache.org/samples/wsdl-first/PersonService");

Best Regards

Freeman

nvijayak wrote:
> It is the wsdl-first example that comes with servicemix. I created the jar
> and copied it into hot-deploy.
> The consumer-http-su xbean.xml is configured as below:
>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
> xmlns:person="http://servicemix.apache.org/samples/wsdl-first">
>   <http:endpoint service="person:PersonService" endpoint="soap"
> targetService="person:PersonService" role="consumer"
> locationURI="http://0.0.0.0:8192/PersonService/"
> defaultMep="http://www.w3.org/2004/08/wsdl/in-out" soap="true" /> 
>   </beans>
>
> Thanks,
> Nithya
>
>
> Freeman Fang wrote:
>   
>> Hi Nithya,
>>
>> Would you please append the configuration for your deployed service?
>>
>> Best Regards
>>
>> Freeman
>> nvijayak wrote:
>>     
>>> Hi Freeman,
>>>
>>> Thanks for following up. I have already started a servicemix instance and
>>> my
>>> service is deployed there. I am trying to write a client that talks to
>>> that
>>> service. Do I still need to register it? 
>>>
>>> Thanks,
>>> Nithya
>>>
>>>
>>>
>>> Freeman Fang wrote:
>>>   
>>>       
>>>> Hi Nithya,
>>>>
>>>> This piece of code just create jbi client and send message to a service, 
>>>> the problem is that I don't see where you register your service 
>>>> (service: {http://localhost:8192/PersonService}) to the jbi. You should 
>>>> create your service and register it to the jbi first.
>>>>
>>>> Best Regards
>>>>
>>>> Freeman
>>>>
>>>> nvijayak wrote:
>>>>     
>>>>         
>>>>> Hi,
>>>>>
>>>>> I use the following code to create a client that invokes a service
>>>>>
>>>>>         JBIContainer container = new JBIContainer();
>>>>>         container.setUseMBeanServer(false);
>>>>>         container.setRmiPort(2999);
>>>>>         container.setCreateMBeanServer(false);
>>>>>         container.setEmbedded(true);
>>>>>         container.init();
>>>>>         container.start();
>>>>>         ServiceMixClient client = new
>>>>> DefaultServiceMixClient(container);
>>>>>         Destination destination =
>>>>> client.createDestination("service:http://localhost:8192/PersonService/");
>>>>>         InOut me = destination.createInOutExchange();
>>>>>
>>>>>         me.getInMessage().setContent(new StringSource(
>>>>>                                 "<jbi:message
>>>>> xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\""
>>>>>                              +  "            
>>>>> xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\" "
>>>>>                              +  "             name=\"Hello\" "
>>>>>                              +  "             type=\"msg:HelloRequest\"
>>>>> "
>>>>>                              +  "             version=\"1.0\">"
>>>>>                              +  "  <jbi:part>"
>>>>>                              +  "   
>>>>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
>>>>>                              +  "  </jbi:part>"
>>>>>                              +  "</jbi:message>"));
>>>>>         client.sendSync(me);
>>>>>
>>>>>         System.err.println(new
>>>>> SourceTransformer().contentToString(me.getOutMessage()));
>>>>>
>>>>> I get the following error when I run it:
>>>>>
>>>>> Exception in thread "main" javax.jbi.messaging.MessagingException:
>>>>> Could
>>>>> not
>>>>> find route for exchange: InOut[
>>>>>   id: ID:128.107.102.246-117a3b0ca5f-2:0
>>>>>   status: Active
>>>>>   role: provider
>>>>>   service: {http://localhost:8192/PersonService}
>>>>>   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/samples/wsdl-first/types"
>>>>> name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>   
>>>>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson> 
>>>>> </jbi:part></jbi:message>
>>>>> ] for service: {http://localhost:8192/PersonService} and interface:
>>>>> null
>>>>> 	at
>>>>> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:297)
>>>>> 	at
>>>>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:830)
>>>>> 	at
>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
>>>>> 	at
>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:470)
>>>>> 	at
>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>>>>> 	at
>>>>> org.apache.servicemix.client.DefaultServiceMixClient.sendSync(DefaultServiceMixClient.java:155)
>>>>> 	at
>>>>> org.apache.servicemix.examples.CRSWSEndpointTest.main(CRSWSEndpointTest.java:92)
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Nithya
>>>>>   
>>>>>       
>>>>>           
>>>>     
>>>>         
>>>   
>>>       
>>     
>
>   

Re: Could not find route for exchange: InOut

Posted by nvijayak <nv...@cs.indiana.edu>.
It is the wsdl-first example that comes with servicemix. I created the jar
and copied it into hot-deploy.
The consumer-http-su xbean.xml is configured as below:

<beans xmlns:http="http://servicemix.apache.org/http/1.0"
xmlns:person="http://servicemix.apache.org/samples/wsdl-first">
  <http:endpoint service="person:PersonService" endpoint="soap"
targetService="person:PersonService" role="consumer"
locationURI="http://0.0.0.0:8192/PersonService/"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out" soap="true" /> 
  </beans>

Thanks,
Nithya


Freeman Fang wrote:
> 
> Hi Nithya,
> 
> Would you please append the configuration for your deployed service?
> 
> Best Regards
> 
> Freeman
> nvijayak wrote:
>> Hi Freeman,
>>
>> Thanks for following up. I have already started a servicemix instance and
>> my
>> service is deployed there. I am trying to write a client that talks to
>> that
>> service. Do I still need to register it? 
>>
>> Thanks,
>> Nithya
>>
>>
>>
>> Freeman Fang wrote:
>>   
>>> Hi Nithya,
>>>
>>> This piece of code just create jbi client and send message to a service, 
>>> the problem is that I don't see where you register your service 
>>> (service: {http://localhost:8192/PersonService}) to the jbi. You should 
>>> create your service and register it to the jbi first.
>>>
>>> Best Regards
>>>
>>> Freeman
>>>
>>> nvijayak wrote:
>>>     
>>>> Hi,
>>>>
>>>> I use the following code to create a client that invokes a service
>>>>
>>>>         JBIContainer container = new JBIContainer();
>>>>         container.setUseMBeanServer(false);
>>>>         container.setRmiPort(2999);
>>>>         container.setCreateMBeanServer(false);
>>>>         container.setEmbedded(true);
>>>>         container.init();
>>>>         container.start();
>>>>         ServiceMixClient client = new
>>>> DefaultServiceMixClient(container);
>>>>         Destination destination =
>>>> client.createDestination("service:http://localhost:8192/PersonService/");
>>>>         InOut me = destination.createInOutExchange();
>>>>
>>>>         me.getInMessage().setContent(new StringSource(
>>>>                                 "<jbi:message
>>>> xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\""
>>>>                              +  "            
>>>> xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\" "
>>>>                              +  "             name=\"Hello\" "
>>>>                              +  "             type=\"msg:HelloRequest\"
>>>> "
>>>>                              +  "             version=\"1.0\">"
>>>>                              +  "  <jbi:part>"
>>>>                              +  "   
>>>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
>>>>                              +  "  </jbi:part>"
>>>>                              +  "</jbi:message>"));
>>>>         client.sendSync(me);
>>>>
>>>>         System.err.println(new
>>>> SourceTransformer().contentToString(me.getOutMessage()));
>>>>
>>>> I get the following error when I run it:
>>>>
>>>> Exception in thread "main" javax.jbi.messaging.MessagingException:
>>>> Could
>>>> not
>>>> find route for exchange: InOut[
>>>>   id: ID:128.107.102.246-117a3b0ca5f-2:0
>>>>   status: Active
>>>>   role: provider
>>>>   service: {http://localhost:8192/PersonService}
>>>>   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/samples/wsdl-first/types"
>>>> name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>   
>>>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson> 
>>>> </jbi:part></jbi:message>
>>>> ] for service: {http://localhost:8192/PersonService} and interface:
>>>> null
>>>> 	at
>>>> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:297)
>>>> 	at
>>>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:830)
>>>> 	at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
>>>> 	at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:470)
>>>> 	at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>>>> 	at
>>>> org.apache.servicemix.client.DefaultServiceMixClient.sendSync(DefaultServiceMixClient.java:155)
>>>> 	at
>>>> org.apache.servicemix.examples.CRSWSEndpointTest.main(CRSWSEndpointTest.java:92)
>>>>
>>>>
>>>> Thanks,
>>>> Nithya
>>>>   
>>>>       
>>>     
>>
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/Could-not-find-route-for-exchange%3A-InOut-tp15030924s12049p15035824.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Could not find route for exchange: InOut

Posted by Freeman Fang <fr...@gmail.com>.
Hi Nithya,

Would you please append the configuration for your deployed service?

Best Regards

Freeman
nvijayak wrote:
> Hi Freeman,
>
> Thanks for following up. I have already started a servicemix instance and my
> service is deployed there. I am trying to write a client that talks to that
> service. Do I still need to register it? 
>
> Thanks,
> Nithya
>
>
>
> Freeman Fang wrote:
>   
>> Hi Nithya,
>>
>> This piece of code just create jbi client and send message to a service, 
>> the problem is that I don't see where you register your service 
>> (service: {http://localhost:8192/PersonService}) to the jbi. You should 
>> create your service and register it to the jbi first.
>>
>> Best Regards
>>
>> Freeman
>>
>> nvijayak wrote:
>>     
>>> Hi,
>>>
>>> I use the following code to create a client that invokes a service
>>>
>>>         JBIContainer container = new JBIContainer();
>>>         container.setUseMBeanServer(false);
>>>         container.setRmiPort(2999);
>>>         container.setCreateMBeanServer(false);
>>>         container.setEmbedded(true);
>>>         container.init();
>>>         container.start();
>>>         ServiceMixClient client = new DefaultServiceMixClient(container);
>>>         Destination destination =
>>> client.createDestination("service:http://localhost:8192/PersonService/");
>>>         InOut me = destination.createInOutExchange();
>>>
>>>         me.getInMessage().setContent(new StringSource(
>>>                                 "<jbi:message
>>> xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\""
>>>                              +  "            
>>> xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\" "
>>>                              +  "             name=\"Hello\" "
>>>                              +  "             type=\"msg:HelloRequest\" "
>>>                              +  "             version=\"1.0\">"
>>>                              +  "  <jbi:part>"
>>>                              +  "   
>>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
>>>                              +  "  </jbi:part>"
>>>                              +  "</jbi:message>"));
>>>         client.sendSync(me);
>>>
>>>         System.err.println(new
>>> SourceTransformer().contentToString(me.getOutMessage()));
>>>
>>> I get the following error when I run it:
>>>
>>> Exception in thread "main" javax.jbi.messaging.MessagingException: Could
>>> not
>>> find route for exchange: InOut[
>>>   id: ID:128.107.102.246-117a3b0ca5f-2:0
>>>   status: Active
>>>   role: provider
>>>   service: {http://localhost:8192/PersonService}
>>>   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/samples/wsdl-first/types"
>>> name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>   
>>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson> 
>>> </jbi:part></jbi:message>
>>> ] for service: {http://localhost:8192/PersonService} and interface: null
>>> 	at
>>> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:297)
>>> 	at
>>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:830)
>>> 	at
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
>>> 	at
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:470)
>>> 	at
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>>> 	at
>>> org.apache.servicemix.client.DefaultServiceMixClient.sendSync(DefaultServiceMixClient.java:155)
>>> 	at
>>> org.apache.servicemix.examples.CRSWSEndpointTest.main(CRSWSEndpointTest.java:92)
>>>
>>>
>>> Thanks,
>>> Nithya
>>>   
>>>       
>>     
>
>   

Re: Could not find route for exchange: InOut

Posted by nvijayak <nv...@cs.indiana.edu>.
Hi Freeman,

Thanks for following up. I have already started a servicemix instance and my
service is deployed there. I am trying to write a client that talks to that
service. Do I still need to register it? 

Thanks,
Nithya



Freeman Fang wrote:
> 
> Hi Nithya,
> 
> This piece of code just create jbi client and send message to a service, 
> the problem is that I don't see where you register your service 
> (service: {http://localhost:8192/PersonService}) to the jbi. You should 
> create your service and register it to the jbi first.
> 
> Best Regards
> 
> Freeman
> 
> nvijayak wrote:
>> Hi,
>>
>> I use the following code to create a client that invokes a service
>>
>>         JBIContainer container = new JBIContainer();
>>         container.setUseMBeanServer(false);
>>         container.setRmiPort(2999);
>>         container.setCreateMBeanServer(false);
>>         container.setEmbedded(true);
>>         container.init();
>>         container.start();
>>         ServiceMixClient client = new DefaultServiceMixClient(container);
>>         Destination destination =
>> client.createDestination("service:http://localhost:8192/PersonService/");
>>         InOut me = destination.createInOutExchange();
>>
>>         me.getInMessage().setContent(new StringSource(
>>                                 "<jbi:message
>> xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\""
>>                              +  "            
>> xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\" "
>>                              +  "             name=\"Hello\" "
>>                              +  "             type=\"msg:HelloRequest\" "
>>                              +  "             version=\"1.0\">"
>>                              +  "  <jbi:part>"
>>                              +  "   
>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
>>                              +  "  </jbi:part>"
>>                              +  "</jbi:message>"));
>>         client.sendSync(me);
>>
>>         System.err.println(new
>> SourceTransformer().contentToString(me.getOutMessage()));
>>
>> I get the following error when I run it:
>>
>> Exception in thread "main" javax.jbi.messaging.MessagingException: Could
>> not
>> find route for exchange: InOut[
>>   id: ID:128.107.102.246-117a3b0ca5f-2:0
>>   status: Active
>>   role: provider
>>   service: {http://localhost:8192/PersonService}
>>   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/samples/wsdl-first/types"
>> name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>   
>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson> 
>> </jbi:part></jbi:message>
>> ] for service: {http://localhost:8192/PersonService} and interface: null
>> 	at
>> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:297)
>> 	at
>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:830)
>> 	at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
>> 	at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:470)
>> 	at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>> 	at
>> org.apache.servicemix.client.DefaultServiceMixClient.sendSync(DefaultServiceMixClient.java:155)
>> 	at
>> org.apache.servicemix.examples.CRSWSEndpointTest.main(CRSWSEndpointTest.java:92)
>>
>>
>> Thanks,
>> Nithya
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/Could-not-find-route-for-exchange%3A-InOut-tp15030924s12049p15034473.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Could not find route for exchange: InOut

Posted by nvijayak <nv...@cs.indiana.edu>.
Hi Freeman,

Thanks for following up. I have already started a servicemix instance and my
service is deployed there. I am trying to write a client that talks to that
service. Do I still need to register it? 

Thanks,
Nithya



Freeman Fang wrote:
> 
> Hi Nithya,
> 
> This piece of code just create jbi client and send message to a service, 
> the problem is that I don't see where you register your service 
> (service: {http://localhost:8192/PersonService}) to the jbi. You should 
> create your service and register it to the jbi first.
> 
> Best Regards
> 
> Freeman
> 
> nvijayak wrote:
>> Hi,
>>
>> I use the following code to create a client that invokes a service
>>
>>         JBIContainer container = new JBIContainer();
>>         container.setUseMBeanServer(false);
>>         container.setRmiPort(2999);
>>         container.setCreateMBeanServer(false);
>>         container.setEmbedded(true);
>>         container.init();
>>         container.start();
>>         ServiceMixClient client = new DefaultServiceMixClient(container);
>>         Destination destination =
>> client.createDestination("service:http://localhost:8192/PersonService/");
>>         InOut me = destination.createInOutExchange();
>>
>>         me.getInMessage().setContent(new StringSource(
>>                                 "<jbi:message
>> xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\""
>>                              +  "            
>> xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\" "
>>                              +  "             name=\"Hello\" "
>>                              +  "             type=\"msg:HelloRequest\" "
>>                              +  "             version=\"1.0\">"
>>                              +  "  <jbi:part>"
>>                              +  "   
>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
>>                              +  "  </jbi:part>"
>>                              +  "</jbi:message>"));
>>         client.sendSync(me);
>>
>>         System.err.println(new
>> SourceTransformer().contentToString(me.getOutMessage()));
>>
>> I get the following error when I run it:
>>
>> Exception in thread "main" javax.jbi.messaging.MessagingException: Could
>> not
>> find route for exchange: InOut[
>>   id: ID:128.107.102.246-117a3b0ca5f-2:0
>>   status: Active
>>   role: provider
>>   service: {http://localhost:8192/PersonService}
>>   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/samples/wsdl-first/types"
>> name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>   
>> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson> 
>> </jbi:part></jbi:message>
>> ] for service: {http://localhost:8192/PersonService} and interface: null
>> 	at
>> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:297)
>> 	at
>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:830)
>> 	at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
>> 	at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:470)
>> 	at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
>> 	at
>> org.apache.servicemix.client.DefaultServiceMixClient.sendSync(DefaultServiceMixClient.java:155)
>> 	at
>> org.apache.servicemix.examples.CRSWSEndpointTest.main(CRSWSEndpointTest.java:92)
>>
>>
>> Thanks,
>> Nithya
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/Could-not-find-route-for-exchange%3A-InOut-tp15030924s12049p15034471.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Could not find route for exchange: InOut

Posted by Freeman Fang <fr...@gmail.com>.
Hi Nithya,

This piece of code just create jbi client and send message to a service, 
the problem is that I don't see where you register your service 
(service: {http://localhost:8192/PersonService}) to the jbi. You should 
create your service and register it to the jbi first.

Best Regards

Freeman

nvijayak wrote:
> Hi,
>
> I use the following code to create a client that invokes a service
>
>         JBIContainer container = new JBIContainer();
>         container.setUseMBeanServer(false);
>         container.setRmiPort(2999);
>         container.setCreateMBeanServer(false);
>         container.setEmbedded(true);
>         container.init();
>         container.start();
>         ServiceMixClient client = new DefaultServiceMixClient(container);
>         Destination destination =
> client.createDestination("service:http://localhost:8192/PersonService/");
>         InOut me = destination.createInOutExchange();
>
>         me.getInMessage().setContent(new StringSource(
>                                 "<jbi:message
> xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\""
>                              +  "            
> xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\" "
>                              +  "             name=\"Hello\" "
>                              +  "             type=\"msg:HelloRequest\" "
>                              +  "             version=\"1.0\">"
>                              +  "  <jbi:part>"
>                              +  "   
> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
>                              +  "  </jbi:part>"
>                              +  "</jbi:message>"));
>         client.sendSync(me);
>
>         System.err.println(new
> SourceTransformer().contentToString(me.getOutMessage()));
>
> I get the following error when I run it:
>
> Exception in thread "main" javax.jbi.messaging.MessagingException: Could not
> find route for exchange: InOut[
>   id: ID:128.107.102.246-117a3b0ca5f-2:0
>   status: Active
>   role: provider
>   service: {http://localhost:8192/PersonService}
>   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/samples/wsdl-first/types"
> name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>   
> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson> 
> </jbi:part></jbi:message>
> ] for service: {http://localhost:8192/PersonService} and interface: null
> 	at
> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:297)
> 	at
> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:830)
> 	at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:395)
> 	at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:470)
> 	at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:442)
> 	at
> org.apache.servicemix.client.DefaultServiceMixClient.sendSync(DefaultServiceMixClient.java:155)
> 	at
> org.apache.servicemix.examples.CRSWSEndpointTest.main(CRSWSEndpointTest.java:92)
>
>
> Thanks,
> Nithya
>   

Re: Could not find route for exchange: InOut

Posted by Guillaume Nodet <gn...@gmail.com>.
You can not communicate that way with a remote JBI container.
You need to either:
  * use a RemoteServiceMixClient, which needs a JmsFlow to be configured on
the remote container
  * use another technology like JAX-WS to access your web service using http

On Jan 23, 2008 12:05 AM, nvijayak <nv...@cs.indiana.edu> wrote:

>
> Hi,
>
> I use the following code to create a client that invokes a service
>
>        JBIContainer container = new JBIContainer();
>        container.setUseMBeanServer(false);
>        container.setRmiPort(2999);
>        container.setCreateMBeanServer(false);
>        container.setEmbedded(true);
>        container.init();
>        container.start();
>        ServiceMixClient client = new DefaultServiceMixClient(container);
>        Destination destination =
> client.createDestination("service:http://localhost:8192/PersonService/");
>        InOut me = destination.createInOutExchange();
>
>        me.getInMessage().setContent(new StringSource(
>                                "<jbi:message
> xmlns:jbi=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\<http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper%5C>
> ""
>                             +  "
> xmlns:msg=\"http://servicemix.apache.org/samples/wsdl-first/types\<http://servicemix.apache.org/samples/wsdl-first/types%5C>"
> "
>                             +  "             name=\"Hello\" "
>                             +  "             type=\"msg:HelloRequest\" "
>                             +  "             version=\"1.0\">"
>                             +  "  <jbi:part>"
>                             +  "
> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>"
>                             +  "  </jbi:part>"
>                             +  "</jbi:message>"));
>        client.sendSync(me);
>
>        System.err.println(new
> SourceTransformer().contentToString(me.getOutMessage()));
>
> I get the following error when I run it:
>
> Exception in thread "main" javax.jbi.messaging.MessagingException: Could
> not
> find route for exchange: InOut[
>  id: ID:128.107.102.246-117a3b0ca5f-2:0
>  status: Active
>  role: provider
>  service: {http://localhost:8192/PersonService}
>  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/samples/wsdl-first/types"
> name="Hello" type="msg:HelloRequest" version="1.0">  <jbi:part>
> <msg:GetPerson><msg:personId>id</msg:personId></msg:GetPerson>
> </jbi:part></jbi:message>
> ] for service: {http://localhost:8192/PersonService} and interface: null
>        at
> org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(
> DefaultBroker.java:297)
>        at
> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(
> JBIContainer.java:830)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(
> DeliveryChannelImpl.java:395)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(
> DeliveryChannelImpl.java:470)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(
> DeliveryChannelImpl.java:442)
>        at
> org.apache.servicemix.client.DefaultServiceMixClient.sendSync(
> DefaultServiceMixClient.java:155)
>        at
> org.apache.servicemix.examples.CRSWSEndpointTest.main(
> CRSWSEndpointTest.java:92)
>
>
> Thanks,
> Nithya
> --
> View this message in context:
> http://www.nabble.com/Could-not-find-route-for-exchange%3A-InOut-tp15030924s12049p15030924.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/