我正在尝试使用标题中的技术栈设置一个项目,我们使用的JMS是ActiveMQ。因此,这是我正在进行的配置:
@SpringBootApplication
public class Application {
private static Logger logger = Logger.getLogger(Application.class);
@Value("${broker.component.name}")
private String brokerComponetName;
@Value("${broker.dead.letter.queue}")
private String brokerDeadLetterQueue;
@Value("${broker.in.queue}")
private String brokerInQueue;
@Value("${broker.out.queue}")
private String brokerOutQueue;
@Value("${broker.url}")
private String brokerUrl;
@Value("${broker.user}")
private String brokerUser;
@Value("${broker.password}")
private String brokerPassword;
public static void main(String[] args) throws Exception {
logger.info("starting loader");
SpringApplication.run(Application.class, args);
}
@Bean
public SpringCamelContext camelContext(ApplicationContext applicationContext) throws Exception {
SpringCamelContext camelContext = new SpringCamelContext(applicationContext);
camelContext.addComponent(brokerComponetName, JmsComponent.jmsComponent(connectionFactory()));
camelContext.addRoutes(new RouteBuilder() {
public void configure() throws ConfigurationException {
errorHandler(deadLetterChannel(brokerDeadLetterQueue)
.onRedelivery(new FailureProcessor())
.useOriginalMessage()
.maximumRedeliveries(5)
.redeliveryDelay(5000)
.retryAttemptedLogLevel(LoggingLevel.INFO));
from(brokerInQueue)
.process(new MessageProcessor())
.to(brokerOutQueue);
}
});
return camelContext;
}
@Bean
public ConnectionFactory connectionFactory() throws ConfigurationException {
System.out.println("BROKER URL: " + brokerUrl);
return new ActiveMQConnectionFactory(brokerUser,
brokerPassword, brokerUrl);
}
我已经尝试将@EnableJms添加到应用程序中,但没有成功。堆栈错误如下所示:
org.springframework.beans.factory.BeanCreationException: 创建类名为“jmsListenerContainerFactory”的bean时出错。该bean在以下路径资源文件中定义: [org/springframework/boot/autoconfigure/jms/JmsAnnotationDrivenConfiguration.class]:通过工厂方法实例化Bean失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化org.springframework.jms.config.DefaultJmsListenerContainerFactory的工厂方法'jmsListenerContainerFactory'引发了异常;嵌套异常是java.lang.NoSuchMethodError: org.springframework.jms.config.DefaultJmsListenerContainerFactory.setAutoStartup(Z)V
提前感谢您的帮助,对于问题中的任何错误,我深表歉意。