2017-07-26 79 views
0

概述之间的对象。
我的骆驼设置调用两种服务方法。第一个响应被传递到第二个响应,然后输出最终响应为json网页。相当简单没有太复杂。休息骆驼传递终点

进一步细分提供一些更多的上下文。 Method_1。采用scanId。这工作正常。它产生一个名为ScheduledScan.class Method_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); 

它返回了以下错误

没有方法body可用的类型:路径。 .ScheduledScan但值:
类型:java.lang.String on:HttpMessage @ 0x63c2fd04。产生的原因:无可用

下运行没有错误的类型转换器,即没有方法2。所以,我认为,即时通讯几乎没有。

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

现在从阅读错误它看起来像即时传递HttpMessage而不是java对象?我对接下来要做什么感到困惑?任何建议非常感谢。

我发现这个消息的一些类似的问题。不过,我正在寻找将java对象直接传递给服务方法。

camel-rest-bean-chaining

how-to-share-an-object-between-methods-on-different-camel-routes

回答

1

,您应该设置的outType作为最后的输出,例如什么REST的反应是,这是一个列表/阵列,而不是一个单一的POJO。所以请改用.outTypeList(ConvertedScans.class)