消息的消費(fèi)者接收消息可以采用兩種方式:
1、consumer.receive() 或 consumer.receive(int timeout);
2、注冊一個(gè)MessageListener。
采用第一種方式,消息的接收者會一直等待下去,直到有消息到達(dá),或者超時(shí)。后一種方式會注冊一個(gè)監(jiān)聽器,當(dāng)有消息到達(dá)的時(shí)候,會回調(diào)它的onMessage()方法。下面舉例說明:
MessageConsumer comsumer = session.createConsumer(queue);
comsumer.setMessageListener(new MessageListener(){
@Override
public void onMessage(Message m) {
TextMessage textMsg = (TextMessage) m;
try {
System.out.println(textMsg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});