2016-10-03 5 views
2

Я пытаюсь настроить mcollective/activemq на кукловодку (марионетку с открытым исходным кодом). У меня проблема, когда ActiveMQ не распознает протокол Stomp. Вот соответствующий отрывок в моей /etc/activemq/instances-enabled/activemq/activemq.xml файл, который должен позволить топать + SSL:ActiveMQ не распознает Stomp: Транспортная схема НЕ распознана: [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> 

Когда я начинаю ActiveMQ через service activemq start, я заметил, что демон не в конечном итоге работает (я не вижу его как обработать). Затем я попробовал запустить service activemq console activemq, и похоже, проблема в том, что он не может найти схему Stomp Transport. Вот первая ошибка, которую я вижу на выходе (и ошибка сохраняется на протяжении всего выхода):

ОШИБКА | Не удалось запустить Apache ActiveMQ ([localhost, ID: my-servers-hostname.example.com-40447-1475514312306-0: 1], java.io.IOException: Транспорт Коннектор не может быть зарегистрирован в JMX: java .io.IOException: Транспорт схема не признается: [топать + SSL])

ActiveMQ признает openwire просто отлично. При использовании openwire + ssl, без использования stomp + ssl, демон ActiveMQ начинает нормально работать без ошибок. Однако, когда я пытаюсь работает mco find, я получаю сообщение об ошибке, потому что кажется, что MCO все еще пытается использовать топать + SSL (и ActiveMQ имеет только openwire + SSL включен):

ошибка 2016/10/03 17: 26:59: activemq.rb: 149: в `on_ssl_connectfail» создание сеанса SSL с топать + SSL: // mcollective @ lokalny_host: 61614 не удалось: Соединение отклонено - подключение (2) для "локальный" порт 61614

Возможно, мне нужно настроить мою конфигурацию mco, чтобы использовать openwire вместо stomp? Я не был уверен, где и в каком файле будет находиться эта конфигурация. Не знаю, почему она не распознает stomp, но мне было интересно, какие у меня параметры. Возможно ли использовать MCollective/ActiveMQ, используя только openwire + ssl, или использует stomp требование, если я хочу использовать mco? Я не думаю, что это проблема портов, поскольку соответствующие порты открыты на сервере, я считаю.

Вот соответствующие пакеты/версия, установленная на моей машине:

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 
+0

вы нашли решение этой проблемы? –

ответ

1

я столкнулся с той же проблемой с встроенным сервером 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> 

В вашем случае, я думаю, что вам нужно, чтобы достать эти 2 банки и добавить их к установке ActiveMQ.

1

activemq упаковка, предлагаемая ubuntu 16+ библиотека stomp transport не входит в стоимость. Я не знаю почему. 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 
+2

Пожалуйста, отредактируйте ваше сообщение, чтобы включить подробную информацию о том, почему этот код ответит на вопрос –

+0

@CalvT 븃 добавлено больше информации – Hett

+0

Это исправляет проблему для ActiveMQ на Ubuntu 16.04, где ActiveMQ просто не запускается при вызове через 'systemctl start activemq.'обслуживания; например, при попытке запустить классический (Puppet 3.x) MCollective broker с ActiveMQ (как управляемый [voxpupuli/mcollective] (https://github.com/voxpupuli/puppet-mcollective) вместо нового [Choria MCollective развертывания ] (https://choria.io/), который использует NATS в качестве промежуточного программного обеспечения. Запуск '/etc/init.d/activemq console mcollective' помогает идентифицировать проблему отсутствия библиотеки Stomp, которая нигде не регистрируется. – daff

Смежные вопросы