需要您帮助更新以下代码,目前此代码从IBM MQ获取第一个消息,但我的要求是获取,直到MQ为空
private JmsTemplate jmsTemplate;
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
@Autowired
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
public String onMessage() throws JMSException, IOException {
Message source = jmsTemplate.receive("LQ.SCCO4313");
BytesMessage bm = (BytesMessage) source;
byte[] byteArr = new byte[(int) bm.getBodyLength()];
bm.readBytes(byteArr);
String msg = new String(byteArr, "UTF-8");
logger.info("Message " + msg);
logger.info("MESSAGE received from myMessageQueue ");
return msg;
}
答案 0 :(得分:0)
JMS MessageConsumer的 receive()或 receiveNoWait()将返回null,队列中没有消息。如果有任何内部错误,将会有例外。
因此,您可以在代码中检查source == null
。