Spring JMS не может подключиться к JBoss EAP 7.1 ActiveMq Artemis - PullRequest
1 голос
/ 28 октября 2019

Я пытаюсь подключиться к ActiveMq Artemis на EAP 7.1, который имеет устаревшую конфигурацию (удаленный: 4447). Я могу подключиться, используя JMSToolBox, используя порт 5445, но когда я хочу подключиться к серверу с помощью пульта дистанционного управления: // xxx: 4447 из моего приложения Spring Boot, я получаю это предупреждение

Настройка вызова приемника прослушивателя сообщений JMS не удалась дляназначение 'java: / queue / party' - попытка восстановить. Причина: org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionQueueQueryResponseMessage_V2 не может быть приведен к org.apache.activemq.artemis.core.protocol.core.impl.wireformat *SessionQueue3essage 100ponse

И многие из этих предупреждений.

AMQ212052: Пакетный ПАКЕТ (SessionQueueQueryResponseMessage_V2) [тип = -7, channelID = 13, packetObject = SessionQueueQueryResponseMessage_V2, address = null customer, null name, nullCame0, filterString = null, durable = false, существует = false, временный = false, messageCount = 0, autoCreationEnabled = false] был получен ответ из-за предыдущего тайм-аута сервера, и он игнорируется

У меня нет доступа к серверу JBoss, но мне говорят, что конфигурация в порядке. Это моя конфигурация.

@Bean
public ConnectionFactory connectionFactory() {
    final Hashtable<String, Object> env = new Hashtable<>();
    env.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
    env.put(Context.PROVIDER_URL, providerUrl);
    env.put("jboss.naming.client.ejb.context", true);
    env.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");

    try {
        final Context ctx = new InitialContext(env);
        final String cfLookupName = "jms/RemoteConnectionFactory";

        final ConnectionFactory factory = (ConnectionFactory) ctx.lookup(cfLookupName);
        ctx.close();
        return factory;
    }
    catch (final NamingException e) {
        LOGGER.error(String.format("Error while connecting to JMS. %s", e));
    }
    return null;
}

@Bean
public JmsListenerContainerFactory<?> jmsConnectionFactory(
        final ConnectionFactory connectionFactory,
        final DefaultJmsListenerContainerFactoryConfigurer configurer) {
    final DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    configurer.configure(factory, connectionFactory);
    return factory;
}

application.yml

jms:
  context-factory: org.wildfly.naming.client.WildFlyInitialContextFactory
  provider-url: remote://<hostname>:4447

Я не уверен, что это актуально, но я использую эту зависимость в Maven:

    <groupId>org.wildfly</groupId>
    <artifactId>wildfly-jms-client-bom</artifactId>
    <version>18.0.0.Final</version>
    <type>pom</type>

1 Ответ

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

Это выглядит как несоответствие между EAP 7.1 (в Apache Artemis 1.x) и кодом вашего клиента (в Apache Artemis 2.10).

...