如何在不使用jboss-client.jar

时间:2016-06-16 15:30:54

标签: java jboss wildfly activemq-artemis

如何在不使用jboss-client.jar的情况下连接到WildFly 10嵌入式ActiveMQ-Artemis Broker? 我知道它与standalone.xml中的接受器/连接器有关。 你能提供一个例子吗?

2 个答案:

答案 0 :(得分:2)

有关如何为以下协议执行此操作的示例:

  • AMQP
  • MQTT
  • Openwire
  • 践踏

只需从主页上下载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