Hi,
I have created 2 eclipse projects to test Spring RabbitMQ. The first one produces messages using this code:
On the other side, I'm consuming messages:Code:public class AmqProducer { private RabbitTemplate rabbitTemplate; private RabbitAdmin rabbitAdmin; public RabbitAdmin getRabbitAdmin() { return rabbitAdmin; } public void setRabbitAdmin(RabbitAdmin rabbitAdmin) { this.rabbitAdmin = rabbitAdmin; } public RabbitTemplate getRabbitTemplate() { return rabbitTemplate; } public void setRabbitTemplate(RabbitTemplate rabbitTemplate) { this.rabbitTemplate = rabbitTemplate; } public void send(String queueName, Object message) { Queue queue = new Queue(queueName); rabbitAdmin.declareQueue(queue); rabbitTemplate.convertAndSend(queueName, message); } }
When i send a message from the producer part, it's correctly placed into RabbitMQ queue. Starting the consumer, message is correctly dequed, but the callback for my message listener isn't firing.Code:private SingleConnectionFactory rabbitConnectionFactory; public SingleConnectionFactory getRabbitConnectionFactory() { return rabbitConnectionFactory; } public void setRabbitConnectionFactory( SingleConnectionFactory rabbitConnectionFactory) { this.rabbitConnectionFactory = rabbitConnectionFactory; } public void initAmqAdapters() { List<String> subscriptions = new ArrayList<String>(); subscriptions.add("1"); subscriptions.add("2"); subscriptions.add("3"); Queue[] queues = new Queue[subscriptions.size()]; for(int q = 0; q < subscriptions.size(); q++) { queues[q] = new Queue(subscriptions.get(q)); } SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); container.setConnectionFactory(rabbitConnectionFactory); container.setQueues(queues); container.setAutoStartup(false); AmqMessageListenerAdapter listener = new AmqMessageListenerAdapter(); container.setMessageListener(listener); container.start(); }
Please help.
Cheers


Reply With Quote
