【问题标题】:How to set an unmarshalled object to an exchange property in Camel如何将未编组的对象设置为 Camel 中的交换属性
【发布时间】:2017-10-11 13:35:14
【问题描述】:

我是 Camel 的新手,我被困在一个看似简单的点上。我需要解组交换中的 2 个 xml,然后将相应的 POJO 传递给处理器。我在想是否可以解组一个 xml,将其设置为一个属性作为交换,然后对另一个 xml 重复相同的操作。最后在处理器中,我将检索属性并可以在处理器中执行所需的逻辑。 我能够成功解组 xml 并在 exchange.in.body 中获得最后一个 POJO。但是谁能告诉我在交换属性中设置解组对象结果的正确方法是什么? 我在下面尝试过,但它不起作用:

    <setProperty propertyName="foo">
        <unmarshall ref="modelref" id="model_id"" />
    </setProperty>

这里的modelref是一个引用来自camel的org.apache.camel.model.dataformat.JAXBDataFormat类的bean。

谁能给我一些建议来解决这个问题?

【问题讨论】:

    标签: java xml apache-camel unmarshalling


    【解决方案1】:

    Unmarshal 不是 setProperty 元素的有效子元素。 假设您已经执行了某种拆分,现在想要解组您的一个 XML 并将其设置为标头,您可以执行以下操作:

    <unmarshal ref="modelref" id="model_id" />
    <setProperty propertyName="foo">
        <simple>${body}</simple>
    </setProperty>
    

    【讨论】:

    • 我还在下面添加了将 body 转换为我的 bean 类型
    猜你喜欢
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多