2017-08-16 129 views
0

我尝试使用activemq添加消息侦听器。我遇到的所有示例都使用嵌套的onMessages。 Java的eclipse不允许这个,因为我发现了(也在stackoverflow)。所以现在我很困惑如何设置它。当我删除onMessage窗体的监听器时,Eclipse告诉我必须在那里实现它。另外,它希望我也在类中实现onMessage方法。所以我在监听器对象和类中有onMessage。我如何正确处理这个问题?我没有看到我的代码中有一个onMessage的解决方案。JMS - 消息监听器onMessage必须执行两次?

编辑:该代码运行没有错误,并收到消息。不过奇怪的是有两个onMessages

public static class HelloWorldConsumer implements Runnable, MessageListener { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 




      // Create a Connection 
      try { 

       ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL); 
       Connection connection = connectionFactory.createConnection(); 
       connection.start(); 
       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
       Topic topic = session.createTopic("Physical"); 
       MessageConsumer consumer = session.createConsumer(topic); 


       MessageListener listner = new MessageListener() { 
        @Override 
        public void onMessage(Message message) { 
         try { 
          if (message instanceof TextMessage) { 
           TextMessage textMessage = (TextMessage) message; 
           System.out.println("Received message : " 
             + textMessage.getText() + "'"); 
          } 
         } catch (JMSException e) { 
          System.out.println("Caught:" + e); 
         } 
        } 
       }; 
       consumer.setMessageListener(listner); 
       try { 
        System.in.read(); 
       } catch (IOException e) { 
       } 
       connection.close(); 
      } catch (JMSException ex) { 
       // Logger.getLogger(Consumer.class.getName()).log(Level.SEVERE, null, ex); 

      } 
     }//end method 

     @Override 
     public void onMessage(Message arg0) { 
      // TODO Auto-generated method stub 







     } 

    }} 

回答

1

因为要创建一个MessageListener在网上匿名类,类HelloWorldConsumer并不需要实现MessageListener的。

+0

ah所以我只是删除“实现MessageListener并在最后删除空的onMessage? –

+0

是的,你编码的方式,你不需要实现MessageListener –

相关问题