我有一個異步接收JMS如此編碼(明顯缺少細節):的javax.jms.JMSException:MQJMS2002:無法從MQ隊列得到消息
connection = connectionFactory.createConnection();
connection.setExceptionListener(new ExceptionListener() {
@Override
public void onException(JMSException ex) {
logger.info("JMS exception " + ex.getMessage());
}
});
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
consumer = session.createConsumer(queue);
consumer.setMessageListener(listener);
logger.info("Waiting for a message");
connection.start();
一切都很好地啓動,但是當消息到達我獲取ExceptionListener拾取的JMSException。例外說:
javax.jms.JMSException: MQJMS2002: failed to get message from MQ queue.
at com.ibm.msg.client.wmq.v6.jms.internal.ConfigEnvironment.newException(ConfigEnvironment.java:374)
at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.getMessage(MQMessageConsumer.java:3047)
at com.ibm.msg.client.wmq.v6.jms.internal.MQMessageConsumer.receiveAsync(MQMessageConsumer.java:4042)
at com.ibm.msg.client.wmq.v6.jms.internal.SessionAsyncHelper.run(SessionAsyncHelper.java:507)
at java.lang.Thread.run(Thread.java:662)
鏈接的異常只是說NullPointerException並沒有提供任何其他細節。
我已經拖網尋找答案,但我不是MQ專家,並沒有得到任何與此。這裏的中間件人員不是很有幫助,讓他們做任何事情都證明是緩慢而痛苦的。我得到的印象是與隊列配置有關,但我覺得我正在抓着吸管。
如果任何人有任何建議,我將不勝感激 - 特別是如果這是我可以自己武裝與和
我使用的MQ 7.0.0.2客戶端罐子面對中間件:)。在IBM網站上的
空指針異常將回答有關錯誤消息的問題。如果在MQ API調用中發生錯誤,則鏈接的異常將包含適當的MQ返回碼,告訴您API調用在關閉的連接上不起作用。在API調用中沒有發生異常,或者您的代碼引用了不存在的鏈接異常,或者MQ代碼中有一個未初始化鏈接異常的錯誤。如果你認爲這是最後一個(和開發者*總是*做!:-)並且可以重新創建它,請打開PMR。否則,請確保您正確訪問鏈接的異常。 –