You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by gnanda <gi...@phaseforward.com> on 2010/04/26 22:32:50 UTC

Re: Jms consumer not consuming a message from Topic

Hi Pratibha,
Did your below scenario worked
I have a scenario where I have a jms:consumer->camel router
(recipientlist)-> external webservice


my jms:consumer is defined as below

 <jms:consumer service="cc2:JMSConsumerService"
                  endpoint="jmsEndpoint"
                  targetService="cc2:JMSConsumerService"
                  targetEndpoint="jmsEndpoint"
                  destinationName="ccq2"
                 cacheLevel="2"
                  transacted="jms"
                  concurrentConsumers="5"
                  connectionFactory="#connectionFactory" />

my camel context is as below

 <bean id="routerBean" class="com.pf.camelconsumer.MyRouterBuilder">
 </bean>

  <camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring" trace="true">
    <routeBuilderRef ref="routerBean"/>
  </camelContext>


And my router is as below

from("jbi:service:http://com.pf.camelconsumer2/JMSConsumerService2").bean(myBean,"setLocationUrI")..recipientList(header(HttpProducer.HTTP_URI)).bean(myBean,"printResponse");

I am getting below exception. I am sure you could help me with this error.
Or if you could provide me with your camel_context that I can use as a
reference will be very helpful


2010-04-26 16:21:44,036 | 16:21:44,036 | WARN  | tenerContainer-4 | NMR                             
| .servicemix.nmr.core.ChannelImpl  293 | Error processing exchange [
  id:        409f4622-d3ff-4195-8ca6-08f645748c55
  mep:       InOnly
  status:    Active
  role:      Consumer
  target:   
PropertyMatchingReference[{SERVICE_NAME={http://com.pf.camelconsumer2}JMSConsumerService}]
  properties: [
      org.apache.servicemix.senderEndpoint =
{http://com.pf.camelconsumer2}JMSConsumerService:jmsEndpoint
      javax.jbi.messaging.MessageExchange =
org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@bc3476
      javax.jbi.messaging.sendSync = true
      javax.jbi.InterfaceName = <null>
      javax.jbi.transaction.jta = <null>
      org.apache.servicemix.correlationId =
409f4622-d3ff-4195-8ca6-08f645748c55
      javax.jbi.ServiceName =
{http://com.pf.camelconsumer2}JMSConsumerService
  ]
  In: [
    content: org.apache.servicemix.soap.util.stax.StaxSource@185d83
  ]
]

org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch
exchange. No matching endpoints.
	at
org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
	at 


pratibhaG wrote:
> 
> Hi all,
> 
> I have an example which was working in smx3.3.1. the example use to put a
> message in jms topic and the consumer use to consume it. To fix some other
> problem I replaced my servicemix-camel-2009.01-installer.zip component
> with servicemix-camel-2009.02-installer.zip. now with this change my jms
> consumer is not picking up the message in topic.
> 
> the jms configuration like this:
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>        xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
>        xmlns:amq="http://activemq.org/config/1.0">
> 
>     <jms:consumer service="up:DirectorConsumerService"
>                   endpoint="directorConsumerEndpoint"
> 		  		  targetService="up:DirectorConsumerService"
> 				  clientId="Director"
> 				  pubSubDomain="true"
> 				  subscriptionDurable="true"
>                   destinationName="updateUserProfileTopic"
>                   connectionFactory="#connectionFactory" 
> 				  messageSelector="userPrincipals NOT LIKE '%director%'"
> 				  cacheLevel="2"
> 				  transacted="jms"/>
> 	
> 	<jms:consumer service="up:PortalConsumerService"
>                   endpoint="portalConsumerEndpoint"
> 		  		  targetService="up:PortalConsumerService"
> 				  pubSubDomain="true"
> 				  clientId="Portal"
> 				  subscriptionDurable="true"
>                   destinationName="updateUserProfileTopic"
> 				  connectionFactory="#connectionFactory" 
> 				  messageSelector="userPrincipals NOT LIKE '%portal%'"
> 				  cacheLevel="2"
> 				  transacted="jms"/>
> 	
>   <bean id="propertyConfigurer"
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>       <property name="location" value="classpath:servicemix.properties" />
>   </bean>
> 	
>    <amq:connectionFactory id="connectionFactory"
> brokerURL="${activemq.url}" />
> 
> </beans>
> 
> 
> 
> 
> and :
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>        xmlns:up="http://servicemix.in2m.com/operations/updateprofile"
>        xmlns:amq="http://activemq.org/config/1.0">
> 
> 	<jms:provider service="up:JMSProviderService"
>                   endpoint="JMSProviderEndpoint"
> 				  pubSubDomain="true"
>                   destinationName="updateUserProfileTopic"
>                   connectionFactory="#connectionFactory"
> 				  marshaler="#jmsMarshaler"/>
> 
> 	<bean id="jmsMarshaler"
> class="com.in2m.servicemix.common.marshaller.jms.DefaultJmsProviderMarshaler"/>
> 	
>     <bean id="propertyConfigurer"
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>       <property name="location" value="classpath:servicemix.properties" />
>     </bean>
> 	
>    <amq:connectionFactory id="connectionFactory"
> brokerURL="${activemq.url}" />
> 
> </beans>
> 
> 
> The camel configuration is like this:
> package com.in2m.servicemix.operations.updateprofile;
> 
> import org.apache.camel.builder.RouteBuilder;
> 
> import com.in2m.servicemix.common.errorhandling.CustomDelegateProcessor;
> import com.in2m.servicemix.common.errorhandling.ErrorConstants;
> 
> 
> public class MessageRouting extends RouteBuilder {
> 
>     public void configure() {
>         
>         
>     	
>     	//errorHandler(deadLetterChannel().maximumRedeliveryDelay(3600000L));
>     	
>     	onException(java.lang.Throwable.class)
>         .process(new
> CustomDelegateProcessor(ErrorConstants.SYSTEM_ERROR));                
>        
>     	onException(java.net.SocketException.class)
>         .maximumRedeliveries(5)
>         .useExponentialBackOff()
>         .redeliveryDelay(300000L)
>         .backOffMultiplier(2.0)
>         .maximumRedeliveryDelay(3600000L)
>         .process(new
> CustomDelegateProcessor(ErrorConstants.SOCKET_ERROR));
>             
>        
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/RoutingService")
>        
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/JMSProviderService?mep=in-only")
>        
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/ResponseGeneratorService?mep=in-out");
>        
>        
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorConsumerService")
>        
> .setHeader(ErrorConstants.APPLICATION_NAME,constant("DirectorService"))
>         .process(new CustomDelegateProcessor())         
>        
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/DirectorService?mep=in-out");
>        
>        
> from("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalConsumerService")
>        
> .setHeader(ErrorConstants.APPLICATION_NAME,constant("PortalService"))
>         .process(new CustomDelegateProcessor())     
>        
> .to("jbi:service:http://servicemix.in2m.com/operations/updateprofile/PortalService?mep=in-out");
>     }
> }
> 
> 
> Please provide some help
> 
> Thanks,
> Pratibha
> 
> 

-- 
View this message in context: http://old.nabble.com/Jms-consumer-not-consuming-a-message-from-Topic-tp27983805p28369869.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.