【发布时间】:2017-08-16 12:50:54
【问题描述】:
我尝试使用 activemq 添加消息侦听器。我遇到的所有示例都使用嵌套的 onMessages。正如我发现的那样,Java eclipse 不允许这样做(也在 stackoverflow 上)。所以现在我很困惑如何设置它。当我从监听器中删除 onMessage 时,Eclipse 告诉我必须在那里实现它。此外,它还希望我在类中实现 onMessage 方法。所以我在监听器对象和类中有 onMessage 。我该如何正确处理?我没有看到我的代码中有一个 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
}
}}
【问题讨论】:
标签: java jms publish subscribe