Spring Rest在端点之间传递对象

Spring Rest在端点之间传递对象,spring,apache-camel,message-queue,Spring,Apache Camel,Message Queue,概述 我的camel安装程序调用两种服务方法。第一个响应被传递到第二个响应中,然后将最终响应作为json网页输出。很简单,没什么太复杂的 进一步细分以提供更多上下文。 方法1。接受scanId。这样行。它生成一个名为ScheduledScan.class的对象 方法2。接受ScheduledScan.class的上一个实例,并返回ConvertedScans的列表。然后将显示所述列表 代码说明 @Override public void configure() throws Exception

概述
我的camel安装程序调用两种服务方法。第一个响应被传递到第二个响应中,然后将最终响应作为json网页输出。很简单,没什么太复杂的

进一步细分以提供更多上下文。 方法1。接受scanId。这样行。它生成一个名为ScheduledScan.class的对象 方法2。接受ScheduledScan.class的上一个实例,并返回ConvertedScans的列表。然后将显示所述列表

代码说明

@Override
public void configure() throws Exception {

    restConfiguration().bindingMode(RestBindingMode.json);

    rest("/publish")
       .get("/scheduled-scan/{scanId}")
       .to("bean:SentinelImportService?method=getScheduledScan").outType(ScheduledScan .class)
       .to("bean:SentinelImportService?method=convertScheduledScan");
}
调用的方法如下所示

ScheduledScan  getScheduledScan(@Header("scanId") long scanId);
List<ConvertedScans >  convertScheduledScan(@Body ScheduledScan  scheduledScans);
现在,从读取错误来看,似乎im传递的是一条HttpMessage,而不是java对象?我有点不知道下一步该怎么办?非常感谢您的建议

我发现了一些与此消息类似的问题。但是,我希望将java对象直接传递到服务方法中


您应该将
outType
设置为最后一个输出,例如REST响应是什么,它是一个列表/数组,而不是一个pojo。因此,请改用
.outTypeList(ConvertedScans.class)

rest("/publish")
.get("/scheduled-scan/{scanId}")
.to("bean:SentinelImportService?method=getScheduledScan");