Apache Camel - 如何在整个路由中访问一个值?
Apache Camel - How to make a value accessible across the entire route?
我正在尝试查询 table(带主键)的 Camel 路由,根据查询响应生成 CSV 并将 CSV 文件存储在 Azure 存储容器中。在 Azure 中成功存储文件后,我需要更新 table 中最初查询的标志。为此,我将主键设置为 header 的一部分,但在执行 azure 端点后,header 值将被重置。所以我无法检索初始 header 以及我需要的主键值。存储在整个路由期间可访问的值的理想方法是什么?
from("direct:processPayroll")
.setHeader("payrollId",simple("${body.payrollId}"))
.to("sql:classpath:sql/payroll.sql")
.marshal(csvFormat)
.log("${headers}")
.to("azure-storage-blob://staccount/container?blobName=payroll.csv&operation=uploadBlockBlob")
.log("${headers}")
您可以将其存储在交换属性中。您可以使用 .setProperty("key","value")
添加值并使用 $exchangeProperty("key")
检索它
我正在尝试查询 table(带主键)的 Camel 路由,根据查询响应生成 CSV 并将 CSV 文件存储在 Azure 存储容器中。在 Azure 中成功存储文件后,我需要更新 table 中最初查询的标志。为此,我将主键设置为 header 的一部分,但在执行 azure 端点后,header 值将被重置。所以我无法检索初始 header 以及我需要的主键值。存储在整个路由期间可访问的值的理想方法是什么?
from("direct:processPayroll")
.setHeader("payrollId",simple("${body.payrollId}"))
.to("sql:classpath:sql/payroll.sql")
.marshal(csvFormat)
.log("${headers}")
.to("azure-storage-blob://staccount/container?blobName=payroll.csv&operation=uploadBlockBlob")
.log("${headers}")
您可以将其存储在交换属性中。您可以使用 .setProperty("key","value")
添加值并使用 $exchangeProperty("key")