Wie kann ich alle Nachrichten von einem ActiveMQ-Broker erhalten?

8

Ich habe also einen ActiveMQ-Broker und einige Produzenten, die selbstgemachte Objekte in den Broker legen. Ich habe auch einige Verbraucher, die diese Nachrichten (serialisierte Objekte) ohne Probleme erhalten. Aber ich möchte ein Tool erstellen, das eine Verbindung zum Broker herstellt und alle Nachrichten (serialisierte Objekte) anzeigt.

Ich habe das mit ActiveMQConnection versucht:

%Vor%

Mit diesem Code erhalte ich eine Ausnahme für objectMessage.getObject ():

%Vor%

Ich habe den Debug-Modus verwendet und ActiveMQObjectMessage hat das Objekt auf null gesetzt.

Ist diese Herangehensweise gut und wenn ja, was mache ich falsch? Wie kann ich das Objekt auch vom Broker erhalten?

    
telebog 11.10.2011, 11:14
quelle

1 Antwort

2

Ich denke, Ihr Ansatz, einen QueueBrowser zu verwenden, ist gut. Wenn Sie nur die Nachrichten in der Warteschlange anzeigen und keine Benutzeroberfläche bereitstellen möchten, können Sie auch die JMX-Unterstützung verwenden - Ссылка und verwenden Sie ein Tool wie jconsole oder jvisualvm, um eine Verbindung zum JMX-Listener herzustellen.

Sie führen Ihren Warteschlangen-Browser / Monitor wahrscheinlich auf einer anderen Instanz als Ihren Konsumenten oder Herstellern aus. Dies ist der Grund, warum Ihre Klassen für diese Instanz nicht verfügbar sind und warum der Aufruf von objectMessage.getObject () fehlschlägt Klassendefinition verfügbar sein, um das serialisierte Objekt in ein Objekt zu transformieren. Sie können versuchen, die Klassen-Jars in die Instanz zu setzen, in der Sie Ihren Browser ausführen, und sehen, ob das funktioniert.

    
Biju Kunjummen 11.10.2011, 16:19
quelle

Tags und Links