抱歉,我是骆驼新手。查看这两种方法的文档,没有任何有意义的指示表明您何时可能想要使用这些方法。
例如 setProperty() 参见https://camel.apache.org/components/3.19.x/eips/setProperty-eip.html
除了设置和删除它们之外,我没有看到任何属性方法。重点是什么?标题也是如此,您可以设置它们,但不知道如何获取它们。
\n\n抱歉,我是骆驼新手。查看这两种方法的文档,没有任何有意义的指示表明您何时可能想要使用这些方法。
\n
要了解何时要使用这些方法,您需要了解Headers和Properties之间的区别。
\norg.apache.camel.Message\xe2\x80\x94 包含 Camel 中携带和路由的数据的基本实体。
消息是系统在使用消息传递通道时用来相互通信的实体。消息沿一个方向流动,从发送者到接收者。
\n消息具有正文(有效负载)、标头和可选附件。
\n消息还可以包含可选附件,这些附件通常用于 Web 服务和电子邮件组件。
\norg.apache.camel.Exchange\xe2\x80\x94 Camel 中的交换是路由期间的消息\xe2\x80\x99s 容器。交换还为系统之间各种类型的交互提供支持,也称为消息交换模式 (MEP)。请在此处阅读有关欧洲议会议员的更多信息。
Camel交换具有 ID、MEP、异常和属性。它还具有用于存储传入消息的输入消息和用于存储回复的输出消息。
\n因此,有了这种理解 - 现在根据您的用例,您需要决定是否在标头或属性中保存您的“类型”(即您想要保存的值)。
\n\n\n除了设置和删除它们之外,我没有看到任何属性方法。重点是什么?标题也是如此,您可以设置它们,但不知道如何获取它们。
\n
要检索标头或属性,请使用以下任一方法
\n\n也许还有更多的方法,但这些方法很多并且被广泛使用(至少对我来说是这样!)。
\n更新:您可以使用 Simple 中的 ExchangeProperties 访问您设置的交换属性,下面是一些示例,
\nfrom("seda:updateCustomer").routeId("update-customers-details")\n .setProperty("customerId").simple("${header.customerId}")\n .setProperty("requestBody").body()\n .setProperty("someConstant").constant(123)\n // You can access the properties with exchangeProperty method using simple language \n .log(LoggingLevel.INFO, "Value of customerId from exchange: ${exchangeProperty.customerId}")\n .log(LoggingLevel.INFO, "Request body saved in exchange: ${exchangeProperty.requestBody}")\n .log(LoggingLevel.INFO, "Value of someConstant in exchange: ${exchangeProperty.someConstant}")\n .log(LoggingLevel.INFO, "Value of exchangeId: ${exchangeId}")\n .log(LoggingLevel.INFO, "Value of entire exchange: ${exchange}")\n ..\n ..\nRun Code Online (Sandbox Code Playgroud)\n资料来源:https ://livebook.manning.com/book/camel-in-action-second-edition/chapter-1/
\n| 归档时间: |
|
| 查看次数: |
3932 次 |
| 最近记录: |