Я пытаюсь подключиться к 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>