ActiveMQ无法识别Stomp:传输方案无法识别:[stomp + ssl]

时间:2016-10-03 20:09:15

标签: activemq puppet stomp ubuntu-16.04 mcollective

我正在尝试在puppetmaster(开源木偶)上设置mcollective / activemq。我遇到ActiveMQ无法识别Stomp协议的问题。以下是我的/etc/activemq/instances-enabled/activemq/activemq.xml文件中应该启用stomp + ssl:

的相关代码段
<transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
            <transportConnector name="stomp+ssl" uri="stomp+ssl://0.0.0.0:61614?needClientAuth=true&amp;transport.enabledProtocols=TLSv1,TLSv1.1,TLSv1.2"/>
</transportConnectors>

当我通过service activemq start启动ActiveMQ时,我注意到该守护进程最终没有运行(我不认为它是一个进程)。然后我尝试运行service activemq console activemq,看起来问题是它无法找到stomp传输方案。这是我在输出中看到的第一个错误(错误在整个输出中仍然存在):

  

错误|无法启动Apache   ActiveMQ([localhost,   ID:my-servers-hostname.example.com-40447-1475514312306-0:1],java.io.IOException:Transport   连接器无法注册   JMX:java.io.IOException:Transport   方案未被识别:[stomp + ssl])

ActiveMQ很好地识别openwire。仅使用openwire + ssl时,不使用stomp + ssl,ActiveMQ守护程序启动正常,没有错误。但是,当我尝试运行mco find时,我收到一个错误,因为似乎mco仍在尝试使用stomp + ssl(并且ActiveMQ仅启用了openwire + ssl):

  

错误2016/10/03 17:26:59:activemq.rb:149:在'on_ssl_connectfail'创建SSL会话时使用stomp + ssl:// mcollective @ localhost:61614失败:连接被拒绝 - 连接(2) “localhost”端口61614

也许我需要调整我的mco配置以使用openwire而不是stomp?我不确定该配置在哪里或哪个文件。不知道为什么它不能识别stomp,但我想知道我的选项是什么。是否可以仅使用openwire + ssl来使用MCollective / ActiveMQ,或者如果我想使用mco则使用stomp一个要求?我不认为这是一个端口问题,因为我相信服务器上的相关端口是开放的。

以下是我机器上安装的相关软件包/版本:

OS: Ubuntu 16.04 (xenial)
puppet: 4.7.0
ActiveMQ: 5.13.2
ruby-stomp: 1.3.5-1
MCollective (mco) version: 2.9.0

2 个答案:

答案 0 :(得分:2)

我在项目中遇到了与嵌入式ActiveMQ服务器相同的问题。结果我需要将以下依赖项添加到我的pom。

    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-stomp</artifactId>
        <version>5.15.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-kahadb-store</artifactId>
        <version>5.15.0</version>
    </dependency>

在您的情况下,我认为您需要抓住这两个罐子并将它们添加到您的ActiveMQ安装中。

答案 1 :(得分:1)

在ubuntu 16+库提供的activemq包中,不包括stomp传输。我不知道为什么。 Yoy可以手动下载并放入/usr/share/activemq/lib

cd /usr/share/activemq/lib
# check your actviemq version before (apt-cache policy activemq) and use the relevant version of library.
wget https://repository.apache.org/content/repositories/releases/org/apache/activemq/activemq-stomp/5.13.5/activemq-stomp-5.13.5.jar
service activemq restart