Hi, I think you just need set the destinationName with topic queue's name. Camel will create a exchage and set the correlation id (routing key) for you.
Willem gairey wrote: > Ashwin, Willem, > > Thanks for your prompt replies. I'm still having some trouble though. From > my limited experience of using Qpid, it appears that when you consume > messages, you specify a queue/topic name, whereas when you publish messages, > you specify an exchange name and a routing key. > > So, for the node: > > <camel:to uri="amqp:topic:destinationName"/> > > I presume destinationName should be an exchange name? There doesn't seem to > be a way of specifying the routing key though. > > I've tried running my app with the above setting (i.e. destinationName set > to the exchange amq.topic), but no messages are received by a JMS listener > in a separate app, configured as follows (again using Spring): > > <bean id="connectionFactory" > class="org.apache.qpid.client.AMQConnectionFactory"> > <constructor-arg index="0" type="java.lang.String" > value="amqp://guest:guest@/localhost?brokerlist='tcp://localhost:5672'" /> > </bean> > > <bean id="destination" class="org.apache.qpid.client.AMQTopic"> > <constructor-arg index="0"> > <bean class="org.apache.qpid.framing.AMQShortString"> > <constructor-arg index="0" type="java.lang.String" value="amq.topic" > /> > </bean> > </constructor-arg> > <constructor-arg index="1" type="java.lang.String" value="TEST" /> > </bean> > > <bean id="jmsConnection" class="org.springframework.jms.core.JmsTemplate" > scope="prototype"> > <property name="connectionFactory" ref="blazeConnectionFactory"/> > <property name="defaultDestination" ref="blazeDestination"/> > <property name="receiveTimeout" value="60000"/> > </bean> > > If I publish a message directly using the RabbitMQ client code in my > previous post, the JMS listener does receive the message, so I'm pretty sure > it's configured OK. > > Any ideas? Thanks again for your help so far - I'm pretty new to all this > stuff, so really appreciate your time.