我正在执行驼峰路由,它从 FluentProducerTemplate
使用 withBody(parameter)
然后在我想执行的过程中 carService(CarReg carReg)
方法,我要将从生产者发送的参数传递到该方法中。
路由正在工作,当我用不需要参数的执行方法测试它,然后调用方法并返回请求的数据。此外,im sending的主体/参数正确地传递到route exchange中,因为在调试模式下,我可以看到exchange保存了我传递的正确数据。
问题是,当我想在一个exchange中调用一个方法,向其中传递应该由exchange检索的参数时,这个代码被标记为一个错误 getCarDetails(exchange.getIn().getBody))
说我只是路过 Object
不需要 CarReg
对象类型。如何确保exchange检索到的参数是原始类型而不是对象类型?
@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));
});
}
3条答案
按热度按时间4dbbbstv1#
请试试这个,我希望这个能起作用。
sgtfey8w2#
message.getbody()有一个以类作为参数的重载。所以:
omvjsjqw3#
你也可以使用jackson库输入case