1
我正在編寫一個應用程序,對WebSphere MQ隊列執行一些操作。該方法特別將消息從一個隊列移動到另一個隊列。我沒有遇到問題,下面的代碼:在MQ應用程序中接收異常:com.ibm.mq.jms.MQQueue與javax.jms.ConnectionFactory不兼容
Context ctx = new InitialContext();
ConnectionFactory retrieveConnectionFactory = (ConnectionFactory) ctx.lookup(jndiPrefix + "/" + qcfName);
retrieveConnection = retrieveConnectionFactory.createConnection();
Queue source = (Queue) ctx.lookup(jndiPrefix + "/" + sourceQueue);
retrieveConnection.start();
retrieveSession = retrieveConnection.createSession(true, Session.AUTO_ACKNOWLEDGE);
String queueSearchSpec = buildSearchSpec(searchSpec);
consumer = retrieveSession.createConsumer(source, queueSearchSpec);
do {
qMessage = consumer.receiveNoWait();
if (qMessage != null) {
messages.add(qMessage);
numberOfMessages++;
}
} while (qMessage != null);
但是,後來下來,我在做一些非常相似,除了我收到一個鑄造例外:
ConnectionFactory putConnectionFactory = (ConnectionFactory) ctx.lookup(jndiPrefix + "/" + destinationQueue);
// this is where the exception is occurring-- Error: com.ibm.mq.jms.MQQueue incompatible with javax.jms.ConnectionFactory
putConnection = putConnectionFactory.createConnection();
Queue destination = (Queue) ctx.lookup(jndiPrefix + "/" + destinationQueue);
putConnection.start();
putSession = putConnection.createSession(true, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = putSession.createProducer(destination);
for(int i = 0; i < messages.size(); i++)
{
producer.send(messages.get(i));
}
注意在第二行註釋上面的摘錄:這是我收到異常消息「com.ibm.mq.jms.MQQueue與javax.jms.ConnectionFactory不兼容。」我不知道爲什麼我會在這裏得到它,但不是以上。我甚至嘗試使用'javax.jms顯式聲明所有對象。 ''前綴,但我仍然收到相同的錯誤。
我正在WebSphere Application Server v7.0上運行我的應用程序。任何幫助,將不勝感激。