ActiveMQ Artemis Транспортная схема не распознана [vm] ошибка - PullRequest
0 голосов
/ 17 октября 2019

Я пытался запустить этот код:

EmbeddedActiveMQ server = new EmbeddedActiveMQ();
server.setConfiguration(new ConfigurationImpl()
        .setAcceptorConfigurations(singleton(new TransportConfiguration(
                InVMAcceptorFactory.class.getName())))
        .setPersistenceEnabled(false)
        .setSecurityEnabled(false));
server.start();

ConnectionFactory cf = new ActiveMQConnectionFactory("vm://0");
Connection connection = cf.createConnection();

Но я получил это исключение:

javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: Transport scheme NOT recognized: [vm]
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:36)
    at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:333)
    at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:346)
    at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:304)
    at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:244)
    at com.hazelcast.jet.examples.jms.JmsTopicSample.main(JmsTopicSample.java:84)
Caused by: java.io.IOException: Transport scheme NOT recognized: [vm]
    at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:28)
    at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:185)
    at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:64)
    at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:331)
    ... 4 more
Caused by: java.io.IOException: Could not find factory class for resource: META-INF/services/org/apache/activemq/transport/vm
    at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.loadProperties(FactoryFinder.java:98)
    at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.create(FactoryFinder.java:60)
    at org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:148)
    at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:182)
    ... 6 more

Все, что я мог найти в Интернете, указывало, что мне не хватает некоторой зависимости отпуть к классам, но ни один из них не был выполнен с протоколом vm.

1 Ответ

0 голосов
/ 17 октября 2019

Оказалось, что я неправильно использовал импорт. Я использовал:

org.apache.activemq.ActiveMQConnectionFactory

, но я должен был использовать:

org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory

По какой-то причине apache-artemis:2.10.1 включает в себя зависимость от activemq-client от activemq версии 5, которая включает другой класс.

...