Comment puis-je obtenir tous les messages d'un courtier ActiveMQ?

J'ai donc un courtier ActiveMQ et certains producteurs qui met de l'auto fait des objets dans le courtier. J'ai aussi des consommateurs qui reçoivent ces messages(d'objets sérialisés) sans problème. Mais je veux créer un outil qui se connecte au courtier et affiche tous les messages (d'objets sérialisés).

J'ai essayé de le faire à l'aide et ActiveMQConnection :

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();
       }
    }
 }

Avec ce code j'obtiens une exception sur objectMessage.getObject():

javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: MyMessage

J'ai utilisé le mode debug et ActiveMQObjectMessage a l'ensemble de l'objet à null.

Cette approche est la bonne et Si oui, ce que je fais de mal?
Comment puis-je également recevoir l'objet à partir du courtier?

Sont les consommateurs toujours en cours d'exécution? Maye qu'ils consomment/supprimer de la file d'attente tout en essayant de prendre un coup d'oeil?
non, le consommateur ne fonctionnent pas

OriginalL'auteur telebog | 2011-10-11