2017-03-23 1 views

Antwort

0

Sie könnten RabbitMQ JMS Client in Ihrer Anwendung verwenden, die auf Wildfly läuft.

Sie müssen nur eine der RabbitMQ JMS Connectionfactory und Zielobjekte erzeugen, manuell mit einem CDI Produzent (wenn Ihre Anwendung JEE ist) oder über JNDI Bindungen Konfiguration ab 1.7.0 Version von RabbitMQ JMS-Client.

Für Wildfly JNDI Bindungen Konfiguration können Sie sich RabbitMQ JMS Client Dokumentation und Wildfly Naming Subsystem configuration.

Dann könnten Sie die JMS Connection Factory und Zielobjekte mit @Resource in Ihre App injizieren. Beachten Sie, dass Sie auch die JMS-Client-Bibliothek in ein in Wildfly deklariertes JBoss-Modul schreiben müssen. Wenn Sie Nachrichten-Listener registrieren möchten, können Sie dies manuell tun, indem Sie Listener erstellen, die die JMS MessageListener-Schnittstelle implementieren und registrieren Listener manuell auf RabbitMQ-Warteschlangen mit Hilfe der setMessageListener Methode (plus CDI-Installation). Es ist in der Tat nicht möglich, Message Driven Beans mit der aktuellen Version RabbitMQ JMS Client zu verwenden. Einzelheiten finden Sie unter this post. Allerdings bin ich nicht sicher, ob diese letzte funktionieren würde oder nicht in Wildfly (getestet werden), gemäß dem javadoc dieser Methode löst eine JMS-Ausnahme:

wenn die JMS-Provider der Message der Message einzustellen versagen für eine der folgenden Gründe: ein interner Fehler aufgetreten ist oder diese Methode in einer Java EE Web oder EJB-Anwendung

auch

(obwohl es, dass eine Ausnahme in diesem Fall ausgelöst wird, ist nicht garantiert) genannt wurde, vielleicht diese würde am besten mit Wildfly funktionieren, das mit dem WEB-Profil gestartet wurde, nicht mit dem Java EE 7 Full Profile?

Verwandte Themen