私はActiveMQブローカと、いくつかの自己生成オブジェクトをブローカに置くプロデューサを持っています。私も問題なく、それらのメッセージ(シリアル化されたオブジェクト)を受け取る消費者があります。しかし、私はブローカに接続してすべてのメッセージ(シリアル化されたオブジェクト)を表示するツールを作成したいと考えています。 ActiveMQブローカからすべてのメッセージを取得するにはどうすればよいですか?
は、私が実行しようとしましたその使用とActiveMQConnection:私はobjectMessage.getObject()で例外を取得し、このコードでSet<ActiveMQQueue> currentMessageQueues = activeMQConnection.getDestinationSource().getQueues();
Iterator<ActiveMQQueue> messageQueueIterator = currentMessageQueues.iterator();
while (messageQueueIterator.hasNext()) {
ActiveMQQueue currentQueue = messageQueueIterator.next();
QueueSession queueSession = activeMQConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
QueueBrowser browser = queueSession.createBrowser(currentQueue);
Enumeration<?> messagesInQueue = browser.getEnumeration();
while (messagesInQueue.hasMoreElements()) {
Message queueMessage = (Message) messagesInQueue.nextElement();
if (queueMessage instanceof ActiveMQObjectMessage) {
ActiveMQObjectMessage objectMessage = (ActiveMQObjectMessage) queueMessage;
objectMessage.getObject();
}
}
}
:私はデバッグモードを使用してActiveMQObjectMessageを目的としている
javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: MyMessage
nullに設定します。
このアプローチは良いですか?はいの場合は間違っていますか? ブローカからオブジェクトを受け取るにはどうしたらいいですか?
コンシューマーはまだ動作していますか? Maye彼らは見てしようとしている間、キューから消費/削除? – Dag
いいえ、コンシューマは実行されません – telebog