如何在不使用 jboss-client.jar 的情况下连接到 WildFly 10 嵌入式 Active-MQ Artemis Broker
How to connect to WildFly 10 embedded Active-MQ Artemis Broker without using jboss-client.jar
如何在不使用 jboss-client.jar 的情况下连接到 WildFly 10 嵌入式 ActiveMQ-Artemis Broker?
我知道这与 standalone.xml 中的 acceptors/connectors 有关。
能举个例子吗?
明白了:
第 1 步:确保您拥有所有必需的协议。例如,不幸的是,WildFly10-Final(2016-01-29 的版本)的默认下载不包含 OPENWIRE 协议的必要模块。
如果您查看 /modules/system/layers/base/org/apache/activemq/artemis/protocol,您会发现没有 openwire 目录。因此,创建一个,并在其中添加一个 "main" 目录。将这些罐子放在那里:activemq-client-5.12.0.jar、artemis-openwire-protocol-1.2.0.jar、hawtbuf-1.11.jar 和这个 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>
接下来,转到 /modules/system/layers/base/org/apache/activemq/artemis/main,编辑 module.xml 文件并在依赖项部分添加此行:
模块名称="org.apache.activemq.artemis.protocol.openwire"服务="import"可选="true"
第 2 步:您可以在
urn:jboss:domain:messaging-activemq:1.0 部分 standalone.xml。看这里:
有关于如何为以下协议执行此操作的示例:
- AMQP
- MQTT
- Openwire
- 践踏
只需从主页下载 artemis Zip 文件即可。在(Artemis 1.3 的)examples\protocols 文件夹中,您会找到示例代码。
请注意,这并没有解释如何在 Wildfly 上的 Artemis 运行 中设置协议。您需要向 standalone-full.xml 添加一个接受器。就我而言,我需要以下接受器(用于 Stomp 和 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>
(将 10.xx.yyy.zzz 替换为您服务器的 IP 地址)。
正如 MetaHnet 指出的那样,您可能需要为某些协议手动添加 Jars。对于 Stomp,您可以在此处找到说明:How update WildFly 10.1.0Final Apache Artemis 1.1.0 to Apache Artemis 1.3
如何在不使用 jboss-client.jar 的情况下连接到 WildFly 10 嵌入式 ActiveMQ-Artemis Broker? 我知道这与 standalone.xml 中的 acceptors/connectors 有关。 能举个例子吗?
明白了:
第 1 步:确保您拥有所有必需的协议。例如,不幸的是,WildFly10-Final(2016-01-29 的版本)的默认下载不包含 OPENWIRE 协议的必要模块。
如果您查看 /modules/system/layers/base/org/apache/activemq/artemis/protocol,您会发现没有 openwire 目录。因此,创建一个,并在其中添加一个 "main" 目录。将这些罐子放在那里:activemq-client-5.12.0.jar、artemis-openwire-protocol-1.2.0.jar、hawtbuf-1.11.jar 和这个 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>
接下来,转到 /modules/system/layers/base/org/apache/activemq/artemis/main,编辑 module.xml 文件并在依赖项部分添加此行:
模块名称="org.apache.activemq.artemis.protocol.openwire"服务="import"可选="true"
第 2 步:您可以在
urn:jboss:domain:messaging-activemq:1.0 部分 standalone.xml。看这里:
有关于如何为以下协议执行此操作的示例:
- AMQP
- MQTT
- Openwire
- 践踏
只需从主页下载 artemis Zip 文件即可。在(Artemis 1.3 的)examples\protocols 文件夹中,您会找到示例代码。
请注意,这并没有解释如何在 Wildfly 上的 Artemis 运行 中设置协议。您需要向 standalone-full.xml 添加一个接受器。就我而言,我需要以下接受器(用于 Stomp 和 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>
(将 10.xx.yyy.zzz 替换为您服务器的 IP 地址)。
正如 MetaHnet 指出的那样,您可能需要为某些协议手动添加 Jars。对于 Stomp,您可以在此处找到说明:How update WildFly 10.1.0Final Apache Artemis 1.1.0 to Apache Artemis 1.3