2015-12-16 2 views
1

Я пытаюсь разработать проект, в котором одновременно используются как activeMQ, так и rabbitMQ. Зависимости, которые я добавил в pom.xml перечислены ниже:Ошибка версии протокола AMQP при одновременном запуске ActiveMQ и RabbitMQ на одном компьютере

<dependency> 
     <groupId>org.springframework.amqp</groupId> 
     <artifactId>spring-rabbit</artifactId> 
     <version>1.4.6.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-jms</artifactId> 
     <version>4.2.3.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-broker</artifactId> 
     <version>5.13.0</version> 
    </dependency> 

Кроме того, я бегу apache-activemq-5.13.0 и rabbitmq-server-3.5.6 в то же время. Но, к сожалению, я столкнулся ошибку, которая связана с AMQP и показано ниже:

java.io.IOException 
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106) 
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102) 
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:350) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:648) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:678) 
    at org.hafiz.framework.common.rabbit.filter.ReceiveRabbitMessageFilter.init(ReceiveRabbitMessageFilter.java:33) 
    at org.hafiz.common.filter.PrmTarrifTypeMessageFilter.init(PrmTarrifTypeMessageFilter.java:21) 

    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4854) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5546) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) 

    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1263) 

    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1948) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error 
    at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67) 
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:37) 

    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:367) 
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293) 
    ... 20 more 
Caused by: com.rabbitmq.client.MalformedFrameException: AMQP protocol version mismatch; we are version 0-9-1, server sent signature 0,1,0,0 
    at com.rabbitmq.client.impl.Frame.protocolVersionMismatch(Frame.java:174) 
    at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:111) 

    at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:139) 
    at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:536) 
    ... 1 more 
java.lang.NullPointerException 
    at org.hafiz.framework.common.rabbit.filter.ReceiveRabbitMessageFilter.receiveMessage(ReceiveRabbitMessageFilter.java:61) 
    at org.hafiz.common.filter.PrmTarrifTypeMessageFilter$1.run(PrmTarrifTypeMessageFilter.java:29) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

Я буду признателен, если кто поможет мне решить эту ошибку.

+3

Вы настроили их для использования разных портов? – Kenney

+0

@ Kenney Я уже искал файл конфигурации в папке etc в каталоге установки rabbitMQ. Но единственный файл, который я нашел, называется «rabbitmq.config.example». Итак, я изменил номер порта в этом файле на 5673. Однако я думаю, что это не тот файл, который нужно изменить. – moha

+1

Вы видели [rabbitmq configure] (https://www.rabbitmq.com/configure.html) - кажется, используют переменные среды. Если это не удается, вы можете изменить [транспортную конфигурацию activemq] (http://activemq.apache.org/configuring-transports.html). В конце концов, только один из них должен быть изменен. – Kenney

ответ

1

Решение просто изменит один из номеров портов брокеров сообщений. Поскольку оба они работают на одном и том же порту (5672), вы должны просто изменить конфигурацию одного из них.

Для rabbitMQ вы можете выполнить инструкции, которые объясняются here, так же как @Kenney сказал, что это так же просто, как установка переменной окружения.

Примечание: Не забудьте переустановить службу RabbitMQ во время установки переменной.

В окнах, вы можете сделать это, выполнив команды ниже в командной строке:

  1. кд в папку SBIN под RabbitMQ сервера каталога установки и запуска RabbitMQ-service.bat удалить
  2. набор RABBITMQ_NODE_PORT = хххх
  3. RabbitMQ-service.bat установки

Кроме того, если он не работает, вы можете просто изменить порт по умолчанию ActiveMQ для AMQP. Для этого вы должны искать имя файла activemq.xml в папке conf, расположенной в каталоге установки сервера ActiveMQ. Надеюсь, это сработает для вас.

+1

Спасибо за ваш бесценный ответ, но, как я сказал @ Кенни, хотя я уже сделал то, что вы предлагали, ошибка не изменилась. – moha

+0

Я, наконец, преуспел в этом вопросе, изменив номер порта по умолчанию ActiveMQ так же, как вы сказали. Большое спасибо. @Reza – moha

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