如何在不使用jboss-client.jar的情况下连接到WildFly 10嵌入式ActiveMQ-Artemis Broker? 我知道它与standalone.xml中的接受器/连接器有关。 你能提供一个例子吗?
答案 0 :(得分:2)
有关如何为以下协议执行此操作的示例:
只需从主页上下载artemis Zip文件。在examples \ protocols文件夹(Artemis 1.3)中,您将找到示例代码。
请注意,这并未解释如何在Wildfly上运行的Artemis中设置协议。您需要在standalone-full.xml中添加一个acceptor。就我而言,我需要以下接受器(对于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
答案 1 :(得分:0)
弄清楚了:
步骤1:确保您拥有所有必需的协议。例如,遗憾的是,WildFly10-Final(2016-01-29版本)的默认下载并不包含OPENWIRE协议所需的模块。
如果查看/ modules / system / layers / base / org / apache / activemq / artemis / protocol,您将看到没有openwire目录。所以,创建一个,并添加一个&#34; main&#34;里面的目录也是如此。把这些罐放在那里: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文件并在依赖项部分中添加此行:
模块名称=&#34; org.apache.activemq.artemis.protocol.openwire&#34;服务=&#34;进口&#34;可选=&#34;真&#34;
第2步:您可以在中添加自定义(例如Netty)接受器 urn:jboss:domain:messaging-activemq:standalone.xml的1.0部分。看这里:https://stackoverflow.com/a/32755989/4516921