2014-11-03 3 views
0

Have Apache Camel простого маршрута сообщения из папки в ActiveMQ тему:Apache Camel отправить сообщение JMS Потребитель получает сообщение

//Create context to create endpoint, routes, processor within context scope 
     CamelContext context = new DefaultCamelContext(); 


     //Create endpoint route 
     context.addRoutes(new RouteBuilder() { 

      @Override 
      public void configure() throws Exception 
      { 
       from("file:data/outbox").to("activemq:topic:Vadim_Topic"); 
       //from("activemq:topic:TEST").to.to("file:data/outbox"); 
      } 

     }); 

     context.start(); 
      Thread.sleep(5000); 
     context.stop(); 
    } 

и реализацию JMS, если тема Потребительский:

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(); 
     try { 

      Connection connection = connectionFactory.createConnection(); 
      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 

      //connection.setClientID("12345"); 

      connection.start(); 
      Topic topic = session.createTopic("Vadim_Topic"); 
      MessageConsumer messageConsumer = session.createConsumer(topic); 

      MessageListener messageListener = new MessageListener() { 

       public void onMessage(Message message) { 

        TextMessage textMessage = (TextMessage) message; 
        try { 
         System.out.println("Received message: " + textMessage.getText()); 
        } catch (JMSException e) { 
         e.printStackTrace(); 
        } 
       } 
      }; 

      messageConsumer.setMessageListener(messageListener); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

Не может понять, почему мой потребитель не может получать сообщения, отправленные по маршруту Camel? Я предполагаю, что проблема заключается в том, что мне нужно подписаться на JMS Consumer на сообщения, отправленные Camel? Как это сделать, если это так?

+0

Вы уверены, что файлы успешно прочитаны и отправлены на эту тему? –

ответ

0

Camel не только позволяет отправлять сообщения по теме, но также может очень легко читать сообщения из темы и отправлять ее в одно из ваших POJO.

маршрута, который считывает с вашей темы и отправляет сообщения на POJO будет выглядеть следующим образом:

from("activemq:topic:Vadim_Topic").bean(ExampleBean.class); 

Camel будет выяснить, какой метод для вызова на POJO в зависимости от типа сообщения, которое он получил, и доступные сигнатуры методов. Подробнее об использовании POJO на верблюжьих маршрутах см. На этой странице: https://camel.apache.org/bean.html

Смежные вопросы