Сбой Activemq при запуске при создании соединения из фабрики соединений ActiveMQ - PullRequest
0 голосов
/ 11 июня 2018

В нашем приложении мы создаем очереди, используя простой Java-код ниже, но иногда это приводит к ошибке из-за следующей ошибки.

Я имею в виду, что это не удается из-за jar, но я поместил все последние jar, новсе еще это терпит неудачу.Теперь я понятия не имею, что делать?

Код запуска Activemq :

            qconFactory = new ActiveMQConnectionFactory("My.Queue");        

            qcon = qconFactory.createConnection(); //error occurs here

            session = qcon.createSession(false, Session.AUTO_ACKNOWLEDGE);

            destination = session.createQueue(QUEUE_NAME);  

            producer = session.createProducer(destination);

            consumer = session.createConsumer(destination);

            msg = session.createTextMessage();

            consumer.setMessageListener(new ImportMessageDrivenBean());
            qcon.start();

Ошибка

javax.jms.JMSException: Could not create Transport. Reason: java.lang.RuntimeException: Fatally failed to create SystemUsageInvalid version: 11, org.apache.activemq.openwire.v11.MarshallerFactory does not properly implement the createMarshallerMap method.

Используется JAR

activemq-broker-5.15.4.jar

activemq-client-5.15.4.jar

activemq-jaas-5.15.4.jar

activemq-kahadb-store-5.15.4.jar

activemq-openwire-legacy-5.15.4.jar

activemq-protobuf-1.1.jar

geronimo-j2ee-management_1.1_spec-1.0.1.jar

geronimo-jms_1.1_spec-1.1.1.jar

geronimo-jta_1.0.1B_spec-1.0.1.jar

slf4j-api-1.7.25.jar

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Доступно несколько каторов ActiveMQConnectionFactory.Без составления послания о полноте я использую следующее:

String bindAddress = "failover:tcp://localhost:61616"; // failover promotes resilience URI uRI = new URI(bindAddress); ConnectionFactory factory = new ActiveMQConnectionFactory(uRI); // note the more general ConnectionFactory

Адрес привязки указывает транспорт, хост (или IP-адрес) и порт.Вы можете передать адрес привязки "tcp: // localhost: 61616" в строковую версию ctor.

0 голосов
/ 11 июня 2018

Вы получите эту ошибку, если одна из используемых вами библиотек построена с использованием версии JDK, более новой, чем та, на которой вы ее запускаете.Так как эта информация не в вопросе, трудно угадать, какая именно.Я бы проверил, что ваш JDK соответствует требуемой версии всех библиотек, которые вы используете.

Для версии 5.15.x ActiveMQ требуется JDK 8, поэтому я предполагаю, что вы пытаетесь запустить ее на JDK 7 или более ранней версии

...