Я использую весеннюю загрузку 1.2.2.Отправка сообщения в встроенный HornetQ из внешнего приложения
У меня есть встроенная установка очереди шершень в application.properties
:
spring.hornetq.mode=embedded
spring.hornetq.embedded.enabled=true
spring.hornetq.embedded.queues=myQueue
Я хочу, чтобы добавить сообщение в «myQueue» из внешнего приложения (а не один со встроенной очереди). Это возможно?
В другом приложении (без встроенного hornetq) я попытался создать connectionFactory, который указывает на встроенный сервер hornetq, но я действительно не знаю, какой порт я должен использовать. Согласно весеннему ботинку documentation, он говорит, что он действителен только для «родного» режима.
spring.hornetq.mode= # connection mode (native, embedded)
spring.hornetq.host=localhost # hornetQ host (native mode)
spring.hornetq.port=5445 # hornetQ port (native mode)
вот мой код до сих пор:
@EnableJms
@Configuration
public class HornetQConfig {
@Bean
public CachingConnectionFactory connectionFactory() {
CachingConnectionFactory cachingConnectionFactory =
new CachingConnectionFactory();
cachingConnectionFactory.setSessionCacheSize(10);
cachingConnectionFactory.setCacheProducers(false);
cachingConnectionFactory.setTargetConnectionFactory(hornetQConnectionFactory());
return cachingConnectionFactory;
}
@Bean
public HornetQConnectionFactory hornetQConnectionFactory() {
HornetQConnectionFactory connectionFactory =
new HornetQConnectionFactory(false, transportConfiguration());
return connectionFactory;
}
@Bean
public TransportConfiguration transportConfiguration() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("host", "localhost");
map.put("port", 5445);
TransportConfiguration configuration =
new TransportConfiguration(
"org.hornetq.core.remoting.impl.netty.NettyConnectorFactory", map);
return configuration;
}
}
И потом:
@Autowired
private JmsTemplate jmsTemplate;
@Scheduled(fixedDelay = 1000L)
public void send() {
this.jmsTemplate.convertAndSend("myQueue", "Hello from external app");
}
Но я получаю проблему подключения.
Failed to create session factory; nested exception is HornetQNotConnectedException[errorType=NOT_CONNECTED message=HQ119007: Cannot connect to server(s)
Я смотрю на что-то подобное (в конце концов, я хочу, чтобы сгруппировать два встроенных HornetQ установок), но не понял его еще ни , Я думаю, что для начала вам нужно будет добавить транспорт на встроенный сервер, который позволяет подключаться к фактическому порту, по умолчанию будет настроен только InVMConnectorFactory. –