我使用以下@Bean
方法创建了一个Spring JMS侦听器。
@Bean
public CachingConnectionFactory cachingConnectionFactory() {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(jmsBrokerUrl);
activeMQConnectionFactory.setExceptionListener(new ExceptionListener() {
@Override
public void onException(JMSException exception) {
System.out.println("Exception while making mq connection");
}
});
return new CachingConnectionFactory(activeMQConnectionFactory);
}
连接URL为:
failover:(tcp://localhost:61616)?jms.warnAboutUnstartedConnectionTimeout=30000&initialReconnectDelay=2000&maxReconnectAttempts=2&maxReconnectDelay=2000&startupMaxReconnectAttempts=1
基于此配置,当ActiveMQ重新启动时,项目将自动创建一个全新的连接。
问题:如果在应用程序启动期间ActiveMQ服务器关闭,则容器无法启动。即使连接失败,我还是希望它启动它,并在以后服务器可用时自动重新连接。
与我的问题最接近的问题是here。但是相同的设置对我不起作用。也经历过relevant docs,但我想它与spring有关,与ActiveMQ或JMS有关。