Wie eine Verbindung zu RabbitMQ mit RabbitMQ JMS-client aus einer vorhandenen JMS-Anwendung?
Habe ich eine generische standalone-JMS-Anwendung, die arbeitet mit folgenden JMS-Provider WebSphere, HornetQ und ActiveMq. Ich pass Kontext.INITIAL_CONTEXT_FACTORY und Kontext.PROVIDER_URL, die als Parameter an meine Anwendung, und erstellen Sie ein naming context, aus Ihnen etwas zu tun, wie diese
Properties environmentParameters = new Properties();
environmentParameters.put(Context.INITIAL_CONTEXT_FACTORY, property.context);
environmentParameters.put(Context.PROVIDER_URL, property.provider);
namingContext = new InitialContext(environmentParameters);
Und verwenden Sie das Kontext-Objekt lookup.
Ich verstehen, RabbitMQ nicht einen JMS-provider, damit es nicht ein InitialContext-Klasse oder einen Provider URL, aber es bietet ein JMS-Client, das ist eine Abstraktion, die von Ihrer Java-client gemäß der JMS-Spezifikation. RabbitMQ ist JMS-client Dokumentation ist ein Beispiel für die Definition von Objekten in JNDI-Ressource-Konfiguration als Teil einer web-Anwendung, aber ich konnte nicht herausfinden, wie zu tun, etwas ähnliches für meinen standalone-Anwendung, die erstellt ein naming context, basierend auf JNDI-Anbieter, JMS-client-Abhängigkeiten oder beim erstellen eines InitialContext aus den verfügbaren Abhängigkeiten.
So jemand kann werfen etwas Licht auf, wie dies geschehen kann? Hoffe meine Frage ist klar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um JMS arbeiten mit RabbitMQ, müssen Sie aktivieren die plugin rabbitmq_jms_topic_exchange.
Sie können es herunterladen und folgt den Anweisungen auf dieser Website (Sie müssen login):
https://my.vmware.com/web/vmware/details?downloadGroup=VFRMQ_JMS_105&productId=349
rabbitmq-plugins enable rabbitmq_jms_topic_exchange
rabbitmq-plugins list
Beachten Sie, dass müssen Sie erstellen eine .Bindungen-Datei, um die JNDI gefunden, die Ihren eingetragenen Objekte. Dies ist ein Beispiel für den Inhalt des it:
... Und dann... endlich... der code:
file:.
Ihr.bindings
Datei in Ihrem Arbeitsverzeichnis,file:/<blah>
vermutlich sieht von der Wurzel Ihrer Datei-system.file:/C:/rabbitmq-bindings
ist nicht eine URI, aber/C:/rabbitmq-bindings
ist nur die Unix-Ausdrücken ein Windows-Pfad, verwurzelt in der C-Laufwerk.Für Menschen, die auf diese Ausnahme
selbst nachdem @Ualter Jr ' s Antwort ist, weil Sie von falschen Einträgen in der .Bindungen-Datei.
Korrigiert habe ich die folgenden 2 Zeilen in .Bindungen Datei
und
Wenn ich traf diese Ausnahme wieder habe ich gerade eröffnet dieses Klasse und festgestellt, dass es erwartet, dass die folgenden Klassennamen
Korrektur diese Einträge würden es ermöglichen, die vorhandenen/neuen JMS-Anwendungen arbeiten mit RabbitMQ.
Wir generieren können .Bindungen Datei RabbitMQ Verwendung unter java-code: