Я пытаюсь настроить потребителя с помощью Springboot, но получаю трудности.Я видел пример конфигурации установки JMS Consumer и сделал то же самое, но почему-то потребитель не настраивается должным образом, и в Jconsole Queue отображается 0 потребителей.Вот мои настройки весенней загрузки:
@Configuration
@EnableJms
@EnableAutoConfiguration
public class MongoConfiguration {
@Bean
public ConnectionFactory connectionFactory() {
final Map<String, Object> properties = new HashMap<>();
properties.put("host", tcpServerURL);
properties.put("port", tcpServerPort);
final org.hornetq.api.core.TransportConfiguration configuration =
new org.hornetq.api.core.TransportConfiguration("org.hornetq.core.remoting.impl.netty.NettyConnectorFactory", properties);
return new org.hornetq.jms.client.HornetQJMSConnectionFactory(false, configuration);
}
@Bean
public JmsListenerContainerFactory<?> myFactory(ConnectionFactory connectionFactory,
DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
}
}
слушатель с назначением очереди
@Component
public class TrackerJmsListener {
@JmsListener(destination = "trackerRec",containerFactory = "myFactory")
public void handleMessage(String message) {//implicit message type conversion
System.out.println("received: " + message);
}
}
Вот jconsole локального запуска hornetq Mbean
Я сбит с толку, поскольку на консоли не отображается ошибка, и потребитель ничего не читает.Если я меняю порт jms или имя очереди, то после запуска приложения springboot я вижу сообщение об ошибке на консоли, поэтому моя базовая конфигурация кажется правильной.
Базовая настройка hornetq на сервере.
hornetq-configuration.xml
<?xml version="1.0"?>
<configuration xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hornetq">
<connectors>
<connector name="netty-connector">
<factory-class>org.hornetq.integration.transports.netty.NettyConnectorFactory
</factory-class>
</connector>
</connectors>
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory
</factory-class>
</acceptor>
</acceptors>
<security-enabled>false</security-enabled>
</configuration>
hornetq-jms.xml
<?xml version="1.0"?>
<configuration xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:hornetq">
<!--the connection factory used by the example -->
<connection-factory name="ConnectionFactory">
<connectors>
<connector-ref connector-name="netty-connector" />
</connectors>
<entries>
<entry name="ConnectionFactory" />
</entries>
<consumer-window-size>0</consumer-window-size>
<connection-ttl>-1</connection-ttl>
</connection-factory>
<queue name="trackerRec">
<entry name="trackerRec" />
</queue>
</configuration>