首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让驼峰路由交换来检索原始数据类型?

如何让驼峰路由交换来检索原始数据类型?
EN

Stack Overflow用户
提问于 2021-03-22 00:59:15
回答 3查看 57关注 0票数 0

我正在执行Camel route,它使用withBody(parameter)FluentProducerTemplate接收主体/参数,然后在route中,我想执行carService(CarReg carReg)方法,我想将我从producer发送的参数传递到该方法中。

当我使用不需要参数的执行方法进行测试时,路由是工作的,然后调用方法,路由返回请求的数据。此外,由于在调试模式下,我可以看到exchange保存了我传递的正确数据,因此Im发送的主体/参数被正确地传递到了路由交换中。

问题是,当我想要在一个交换中调用我想要传递的参数的方法时,这个代码被标记为一个错误getCarDetails(exchange.getIn().getBody)),声明我只传递了Object而不是必需的CarReg对象类型。如何保证交换检索到的参数是原始类型,而不是对象类型?

代码语言:javascript
复制
 @EndpointInject
 private FluentProducerTemplate fProducerTemplate

  public CarDetails startRoute(CarReg carReg){
    CarDetails carDetails = fProducerTemplate.withBody(carReg)
       .to("direct:route") 
       .request(CarDetails .class)  
  }

@Override
public void configure() throw Exception
   from("direct:route")
      .process(exchange -> {
         exchange.getIn().getBody();    //exchange correctly retrieves passed parameter              
        
         exchange.get().setBody(carService.getCarDetails(exchange.getIn().getBody));
       });
}
EN

回答 3

Stack Overflow用户

发布于 2021-03-22 01:15:32

请试试这个,我希望这个能行得通。

代码语言:javascript
复制
       @Override
    public void configure() throw Exception
    from("direct:route")
      .process(exchange -> {
        exchange.getIn().getBody();    //exchange correctly retrieves passed parameter

        exchange.get().setBody(carService.getCarDetails(exchange.getIn().getBody((CarReg.class))));
    });
}
票数 1
EN

Stack Overflow用户

发布于 2021-03-22 20:39:46

Message.getBody()有一个以类作为参数的重载。所以:

代码语言:javascript
复制
exchange.getOut().setBody(carService.getCarDetails(exchange.getIn().getBody(CarReg.class)));
票数 1
EN

Stack Overflow用户

发布于 2021-03-31 18:07:13

你也可以使用Jackson库来输入case

代码语言:javascript
复制
@Autowired
ObjectMapper objectMapper;

String body = exchange.getIn().getBody();

CarReg carReg = objectMapper.convertValue( body , CarReg.class );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66735114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档