骆驼路线 - 忽略 return 值
Camel route - Ignore return value
我有以下路线:
from("INPUT_QUEUE")
.routeId("Test")
.beanRef("logService", "save")
.beanRef("deserialiser", "deserialise")
日志服务中的"save"方法returns一个整数。我不希望将此整数传递给反序列化方法。我需要传递来自输入队列的 json。
感谢任何帮助,对于这个简单的问题表示歉意,因为我是 camel 的新手。
您可以定义您的 save() 以具有像 Exchange exchange 这样的参数
save(yourExistingArguments, Exchange exchange){
//performYourOperations and get your integer
//However, do not set the integer in the exchange body.
// exchange.getIn().setBody(integer)
// Do not return the integer. Set the integer as state and make it accessible through getter and setter
就是这样。您的消息在没有整数
的情况下被传递
不,bean 组件将使用方法的 return 值作为新消息体。
但是你可以使用语言组件并将其设置为不转换,类似
.to("language:bean:logService.save?transform=false")
我记不清具体的语法了,不过我觉得你可以用点号来分隔要调用的方法名,如上所示
使用 multicast 模式,允许将相同的消息路由到多个端点并以不同的方式处理它们:
from("INPUT_QUEUE")
.routeId("Test")
.multicast()
.beanRef("logService", "save")
.beanRef("deserialiser", "deserialise")
.end();
我有以下路线:
from("INPUT_QUEUE")
.routeId("Test")
.beanRef("logService", "save")
.beanRef("deserialiser", "deserialise")
日志服务中的"save"方法returns一个整数。我不希望将此整数传递给反序列化方法。我需要传递来自输入队列的 json。
感谢任何帮助,对于这个简单的问题表示歉意,因为我是 camel 的新手。
您可以定义您的 save() 以具有像 Exchange exchange 这样的参数
save(yourExistingArguments, Exchange exchange){
//performYourOperations and get your integer
//However, do not set the integer in the exchange body.
// exchange.getIn().setBody(integer)
// Do not return the integer. Set the integer as state and make it accessible through getter and setter
就是这样。您的消息在没有整数
的情况下被传递不,bean 组件将使用方法的 return 值作为新消息体。
但是你可以使用语言组件并将其设置为不转换,类似
.to("language:bean:logService.save?transform=false")
我记不清具体的语法了,不过我觉得你可以用点号来分隔要调用的方法名,如上所示
使用 multicast 模式,允许将相同的消息路由到多个端点并以不同的方式处理它们:
from("INPUT_QUEUE")
.routeId("Test")
.multicast()
.beanRef("logService", "save")
.beanRef("deserialiser", "deserialise")
.end();