当前位置: 首页 > 知识库问答 >
问题:

如何将解封的对象设置为Camel中的exchange属性

白宏放
2023-03-14

我是骆驼的新手,我被困在一个似乎很简单的问题上。我需要解组交换中的2个XML,然后将相应的POJO传递给处理器。我在考虑是否可以取消整理一个xml,将其设置为一个属性作为交换,并对另一个xml重复相同的属性。最后,在处理器中,我将检索属性,并可以在处理器中执行所需的逻辑。我能够成功地解组XML的,并获得exchange.in.body中的最后一个POJO。但是有人能告诉我在exchange属性中设置解封的对象的结果的正确方法是什么吗?我在下面试了一下,但没有效果:

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

在这里,modelref是对来自Camel的org.apache.camel.model.DataFormat.JAXBDataFormat类bean的引用。

谁能给我一些指点来解决这个问题吗?

共有1个答案

东郭京
2023-03-14

Unmarshal不是SetProperty-Element的有效子元素。如果您已经执行了某种拆分,现在想要解封一个XML,并将其设置为头,那么您可以执行如下操作:

<unmarshal ref="modelref" id="model_id" />
<setProperty propertyName="foo">
    <simple>${body}</simple>
</setProperty>
 类似资料:
  • 我有一个简单的驼峰路由,它接收传入消息,然后调用处理器,处理器将主体更改为Java对象,并通过CXF-SOAP将其发送回客户端。 处理器如下: 我的问题发生在网上: 当我尝试将上面实例化的POJO Java对象设置到主体上,而不是将其设置为exchange主体上的Java POJO对象时,POJO将转换为it XML格式,如下所示: 由于这种转换,我相信当CXF试图从exchange中整理出SOA

  • 我想为endpoint设置一些属性,如下所示。 发件人()。至()。setProperty(超时,常量(12)); 使用如上所述的setProperty,它正在将属性设置为exchange/message对象?如何在endpoint本身中检索此属性,或者如何为endpoint设置它(而不是通过在URI中传递它)? 我知道我们可以将其传递给endpointURI。但我只是想知道是否有一种方法可以帮助

  • 我想接收一些输入字段的值,并将它们设置为newValue状态,但状态的某些属性本身就是对象。希望newValue状态的格式为: 现在,对象保存如下: 有没有办法通过调整getValue函数或输入字段来实现这一点?

  • 我有一个带有Camel处理器的骆驼DSL路由,该处理器确定要发送文件的位置。路径保存到Exchange中的标头中,以便将其传递回路由。我想在我的路由中使用此标头值(路径),但我收到以下错误: “不允许使用${}占位符的动态表达式。请使用文件名选项设置动态表达式。” 当我使用fileName选项时,这会创建一个文件作为路径中的最后一个目录,而我希望这是一个目录,但没有像directoryName这样

  • 问题内容: 我有一个对象,我想将它设置为任意时间(比如半夜),这样我可以使用的功能一致,而不用担心时间来检索数据 时 创建的对象。 我尝试使用和通过一些Objective-C方法修改其组件,如下所示: 上述方法的问题在于,您只能设置一个时间单位(),因此您只能精确地选择以下其中一项: 天 月 年 小时 分钟 秒 有没有办法同时设置小时,分钟和秒并保留日期(日/月/年)? 问题答案: 您的声明 上述

  • 在我的ASP.NET程序中。我设置了一个受保护的列表。我在列表中添加了一个值。但它显示对象引用未设置为对象错误的实例 如何解决这个错误?