2017-12-11 6 views
0

Gegeben habe ich 2 Ohren auf meiner WildFly-Instanz eingesetzt. Ich möchte etwas Kommunikation zwischen ihnen einrichten. Die für mich am angenehmsten erscheinende Methode ist die Verwendung einer gewöhnlichen Bohne.WildFly: Ist es möglich, zwischen Nicht-EJB-Diensten von 2 Ohren zu kommunizieren?

Mit "Bohne" meine ich nicht ejb-Bohne, weil ich nicht ejb verwende. Das ist ein wichtiger Punkt. Die beste Option für mich ist eine Frühlingsbohne.

Wie auch immer, Spring-Bean, oder nur einige Instanz einer gewissen Java-Klasse, würde ich gerne haben eine geteilt Instanz einer Java-Objekt in einem Speicher von beiden Ohren, auf meinem Wildfly im Einsatz.

Ist es möglich? Wenn nicht, was sind die Optionen?

Antwort

1

Deklarieren Sie eine Warteschlange in der eigenständigen (-Full) .xml, zwei Themen für bidirektionale Kommunikation und haben die Ohren übermitteln und verarbeiten einander Nachrichten.

+1

Pavlocic, ich denke deine Idee ist gut –

0

Dies ist im Allgemeinen nicht etwas, das ich empfehlen würde, da es Anwendungen eng koppelt. Meine allgemeine Empfehlung wäre, eine Art Remoting zwischen den Anwendungen zu verwenden.

Mit dem gesagt gibt es ein paar Möglichkeiten, dies zu erreichen. Zuerst müssen Sie sicherstellen, dass beide EARs die gleichen gemeinsamen Klassen verwenden. Der einfachste Weg dazu besteht darin, sie in ein JBoss-Modul zu verschieben und eine Abhängigkeit in Ihren EARs zu deklarieren. Es ist wichtig, dass die Klassen nicht in den EARs enthalten sind. Dann müssen Sie die Objekte irgendwie registrieren, JNDI und JMX sind offensichtlich Kandidaten.

EJB-Aufrufe sollten ebenfalls möglich sein, es gelten jedoch die gleichen Regeln für gemeinsam genutzte Klassen (fügen Sie eine Schnittstelle zum EJB hinzu, teilen Sie die Schnittstelle zwischen den EARs, beziehen Sie sich auf das EJB nur per Schnittstelle). Es gibt verschiedene Möglichkeiten, EJBs Spring zur Verfügung zu stellen, wobei die offensichtliche eine Factory-Bean ist.

Verwandte Themen