gpt4 book ai didi

apache-camel - 如何在 Camel 路由中调用 ${body} 上的 setter 方法?

转载 作者:行者123 更新时间:2023-12-04 04:24:28 28 4
gpt4 key购买 nike

我试图在 Java bean 的主体上设置一个属性,该属性构成通过 Camel 路由传输的消息。我尝试了各种方法,例如

    <route>
...
..
<transform>
<simple>${body.label} = ${property.label}</simple>
</transform>
...
..
</route>

在这种特殊情况下 ${body}是一个带有 setLabel(String label) 的 Java bean方法和 ${property.label}在另一条 route 通过其他方式设置。在这个例子中,结果不是想要的(我明白为什么),即在转换之后,消息的正文被替换为 ${body.label} = ${property.label}字符串。

我目前的解决方法是将转换器手动编码为 Spring bean 并在代码中设置 Java bean 的标签属性,但我想找出是否有更简单/更智能的方法来实现这一点,最好是在 XML DSL 中我用什么?

问候,奥拉

最佳答案

我不确定 simple 是否可行,但你可以使用 groovy :

<setBody>
<groovy>request.body.label = exchange.getProperty('label')
return request.body
</groovy>
</setBody>

关于apache-camel - 如何在 Camel 路由中调用 ${body} 上的 setter 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com