微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将请求数据从Spring Boot控制器传递到apache骆驼路线

如何解决如何将请求数据从Spring Boot控制器传递到apache骆驼路线

UseCase::在我的应用中有一个REST控制器,借助Spring引导开发,我的要求是,我必须将请求数据从控制器传递到路由,再次从路由传递将数据传递到MQ

这里如何将 inputReq 数据从控制器传递到路由?谁能帮忙

@Controller
public class RequestController {

    @PostMapping("/request")
    public String requestMapping(@RequestBody String inputReq) {
        new ProduceRouter();  // instance of the apache camel route
        return null;

    }
}

以下是一种骆驼路线:

@Component
public class ProduceRouter extends RouteBuilder {

    @Override
    public void configure() throws Exception {
            
        .from("jms:RequestQueue?disableReplyTo=true")
        .log("Received Body is  ${body}   and header info is   ${headers}  ");

        

    }
}

解决方法

在您的控制器中,自动装配CamelContext和ProducerTemplate的实例。

@Autowired
private CamelContext camelContext;
@Autowired
private ProducerTemplate producer;

然后,您需要使用ExchangeBuilder创建交换请求并添加请求正文。

Exchange exchangeRequest = ExchangeBuilder.anExchange(camelContext)
.withBody(inputReq).build();

然后您可以在生产者对象上调用send方法,以进入您的路由并捕获响应。

Exchange exchangeResponse = producer.send("direct:startRoute",exchangeRequest).

然后在您的路由文件中,您可以从direct:startRoute消费

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。