2015-04-01 106 views
0

所有信息需要更新下面的代碼你的幫助,目前該代碼從IBM MQ第一味精,但我的要求是獲取直到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

JMS MessageConsumer的receive()receiveNoWait()將在隊列中沒有消息時返回null。如果有任何內部錯誤,將會有例外。

因此,您可以在代碼中檢查source == null

+0

我可以檢查null,但它會獲取多長時間? – 2015-04-09 14:03:57

+0

直到瀏覽隊列中的最後一條消息。 – Shashi 2015-04-09 14:24:08

相關問題