gpt4 book ai didi

java - 当消息是 XML 格式时,如何在 Camel 选择组件中使用 simple ?

转载 作者:行者123 更新时间:2023-12-01 11:44:14 26 4
gpt4 key购买 nike

我在 Camel 中有以下声明:

      <setProperty propertyName="REASON_FOR_CHANGE"><simple>${body.header.EventName} + ' ' + ${body.header.RolledbackEvent}</simple></setProperty>

当在 Camel route 到达该语句时,我收到一条错误消息:

  org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to invoke method: .header.EventName on null due to: org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to invoke method: header on null due to: org.apache.camel.component.bean.MethodNotFoundException: Method with name: header not found on bean: <?xml version="1.0" encoding="UTF-8"?>
<Event>
<Header>
<EventName>Foo</EventName>
<RolledbackEvent>Bar</RolledbackEvent>
<Action>XFR</Action>
<Effective>2015-01-26T00:00:00.000</Effective>
</Header>
<Message>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
</Message>
</Event>

我在谷歌搜索时发现了这个链接:https://www.talendforge.org/forum/viewtopic.php?id=36754

我对该链接的理解是,我的数据格式不正确,无法让 Simple 处理,而且 Simple 无法理解 XML。

我非常希望不必使用 XPath,并且我已经为此 XML 对象添加了带注释的 JAXB 类。 XML 可以在自定义处理器中反序列化和重新序列化。

使用不同的表达式语言时有时需要手动类型转换吗?我知道某些情况(例如 CSV 处理)必须是正确的,但对于不同的对象表示法语言也是如此?

有没有办法让camel将xml类型转换为java对象以使用Simple,或者是否有更好的表达语言用于此目的?

最佳答案

您可以尝试使用一个简单的 bodyAs(type) 函数,将主体转换为 POJO 类。您需要输入 FQN 类名。

关于java - 当消息是 XML 格式时,如何在 Camel 选择组件中使用 simple ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284292/

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