首页 > 解决方案 > 消费者消费者 [direct-vm] 在骆驼中已经存在异常

问题描述

我正在使用camel 2.25,并且遇到了有线问题,我有以下方法

 public Exchange invoke(String url) throws Exception {
    CamelContext context = new DefaultCamelContext();
    context.addRoutes(new RouteBuilder() {
        public void configure() {
            from(FROM_ROUTE).to(url);
        }
    });
    context.start();
    try {
        ProducerTemplate producer = context.createProducerTemplate();
        return producer.request(FROM_ROUTE, exchange -> {
            exchange.getIn().setHeader(Exchange.HTTP_METHOD, org.apache.camel.component.http4.HttpMethods.GET);
            exchange.setPattern(ExchangePattern.InOut);
        });
    }
    finally {
        context.stop();
    }
}

我在初始化期间在@PostConstruct 期间从spring bean 调用这个invoke() 方法,它工作正常,我可以得到响应。

一旦我的应用程序完全部署,我将再次通过 api 调用这个 invoke() 方法,它会抛出一个异常说

CamelContext:config.service.v1.0.0 中已经存在消费者 Consumer[direct-vm]。不支持多个消费者

但是,然后我下次调用相同的api,它在后续调用中没有任何异常。我很困惑为什么它第二次单独抛出这个异常以及如何解决这个问题?

标签: javaspringapache-camel

解决方案


推荐阅读