Wie kann ich eine Verbindung zu WildFly 10 embedded ActiveMQ-Artemis Broker herstellen, ohne jboss-client.jar zu verwenden? Ich verstehe, dass es etwas mit Akzeptoren/Connectors in standalone.xml zu tun hat. Können Sie ein Beispiel geben?Verbindung zu WildFly 10 embedded Active-MQ Artemis Broker ohne Verwendung von jboss-client.jar
Antwort
Verstanden herausgefunden:
Schritt 1: Stellen Sie sicher, dass Sie alle erforderlichen Protokolle haben. Zum Beispiel enthält der Standard-Download von WildFly10-Final (die Version vom 2016-01-29) leider nicht die notwendigen Module für das OPENWIRE-Protokoll.
Wenn Sie/modules/system/layers/base/org/apache/activemq/artemis/protocol betrachten, sehen Sie, dass es kein Openwire-Verzeichnis gibt. Also, erstellen Sie eine, und fügen Sie ein "Haupt" -Verzeichnis darin hinzu. Setzen Sie diese Gläser in dort: activemq-client-5.12.0.jar, artemis-Openwire-Protokoll-1.2.0.jar, hawtbuf-1.11.jar und diese module.xml:
<resources>
<resource-root path="hawtbuf-1.11.jar"/>
<resource-root path="activemq-client-5.12.0.jar"/>
<resource-root path="artemis-openwire-protocol-1.2.0.jar"/>
</resources>
<dependencies>
<module name="javax.jms.api"/>
<module name="javax.api"/>
<module name="io.netty"/>
<module name="org.slf4j"/>
<module name="org.apache.activemq.artemis"/>
<module name="org.jboss.logging"/>
</dependencies>
Als nächstes gehen Sie zu/modules/system/layers/base/org/apache/activemq/artemis/main, bearbeiten Sie die Datei module.xml und fügen Sie diese Zeile im Abschnitt Abhängigkeiten hinzu:
modul name = "org.apache .activemq.artemis.protocol.openwire "services =" import "optional =" true "
Schritt 2: Sie können eine hinzufügen Gewohnheit (z.B. Netty) Akzeptor in der urn: jboss: Domäne: messaging-activemq: 1.0 Abschnitt von standalone.xml. Schau mal hier: https://stackoverflow.com/a/32755989/4516921
Es gibt Beispiele dafür, wie das für die folgenden Protokolle zu tun:
- AMQP
- MQTT
- Openwire
- Stomp
Laden Sie einfach die artemis Zip-Datei von der Homepage. Im Ordner examples \ prolots (von Artemis 1.3) finden Sie Beispielcode.
Beachten Sie, dass dies nicht erklärt, wie die Protokolle in Artemis auf Wildfly eingerichtet werden. Sie müssen der Datei standalone-full.xml einen Akzeptor hinzufügen. In meinem Fall musste ich die folgenden Akzeptoren (für Stomp und JMS):
<acceptor name="stomp-acceptor" factory-class="org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory">
<param name="protocols" value="STOMP"/>
<param name="port" value="61613"/>
<param name="host" value="10.xx.yyy.zzz,127.0.0.1"/>
</acceptor>
<acceptor name="jms-acceptor" factory-class="org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory">
<param name="port" value="61616"/>
<param name="host" value="10.xx.yyy.zzz,127.0.0.1"/>
</acceptor>
(ersetzen 10.xx.yyy.zzz mit IP-Adresse des Servers).
Wie von MetaHnet hervorgehoben, müssen Sie möglicherweise für einige Protokolle manuell Jars hinzufügen. Für Stomp finden Sie hier eine Anleitung: How update WildFly 10.1.0Final Apache Artemis 1.1.0 to Apache Artemis 1.3