RabbitMQ-错误在类路径资源中创建名称为“ queue”的bean

时间:2019-02-01 16:01:53

标签: java spring-boot rabbitmq microservices

我试图从JSON队列中获取消息,然后转换为特定的数据类型并存储在db中。

尝试了来自stackoverflow的几种解决方案,但确实可行。 我在application.properties中添加了交换,队列和路由键 所有依赖项都添加了w.r.t json Rabbitmq和gson 我也尝试过使用jsafactory,但没有成功

@配置 公共课程测试{

@Value("${queue}")
String queueName;

@Value("${exchange}")
String exchange;

@Value("${routekey}")
private String routingkey;

@Bean
Queue queue() {
    return new Queue(queueName, false);
}

@Bean
TopicExchange exchange() {
    return new TopicExchange(exchange);
}

@Bean
Binding binding(Queue queue, TopicExchange exchange) {
    return BindingBuilder.bind(queue).to(exchange).with(routingkey);
}

@Bean
MessageHandlerMethodFactory messageHandlerMethodFactory() {
    //Impl
}

public void configureRabbitListeners(RabbitListenerEndpointRegistrar registrar) {//Impl
}

@Bean
public MappingJackson2MessageConverter consumerJackson2MessageConverter() {
    return new MappingJackson2MessageConverter();
}

@Bean
public Jackson2JsonMessageConverter jsonMessageConverter() {
    return new Jackson2JsonMessageConverter();
}

}

监听器类

@Component 公共类MainListener {

@Autowired
SomeService someService;


@RabbitListener(queues = "${queue1}"/*, containerFactory="jsaFactory"*/)
public void listnerEx(String someJson) throws Exception {

           //JSON Object Parsed and Stored in DB
}

错误: org.springframework.beans.factory.BeanCreationException:在类路径资源[com / demo / Test.class]中创建名称为'queue'的bean时出错:找不到匹配的工厂方法:factory bean'Test';工厂方法'queue()'。检查是否存在具有指定名称的方法,并且该方法是非静态的。

0 个答案:

没有答案