概述即可。
我的骆驼设置调用了两种服务方法。第一个的响应传递到第二个响应,然后输出最终响应作为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);
它返回以下错误
没有可用的类型:路径。 .ScheduledScan但有价值:
类型:java.lang.String on:HttpMessage @ 0x63c2fd04。引起:没有可用的类型转换器
以下运行没有错误,即没有方法2.所以我认为即将到来。
rest("/publish")
.get("/scheduled-scan/{scanId}")
.to("bean:SentinelImportService?method=getScheduledScan");
现在从阅读错误看起来像是在传递HttpMessage而不是java对象?我对下一步做什么感到有点困惑?任何建议都非常感激。
我在这条消息中发现了一些类似的问题。但是我希望将java对象直接传递给服务方法。
how-to-share-an-object-between-methods-on-different-camel-routes
答案 0 :(得分:1)
您应该将outType
设置为最后一个输出,例如REST响应是什么,即List / Array而不是单个pojo。所以请改用.outTypeList(ConvertedScans.class)
。