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

Apache Camel-如何使一个值在整个路线上都可以访问?

巫马泰
2023-03-14

我正在尝试一个Camel路由,它查询表(带有主键),根据查询响应生成CSV,并将CSV文件存储在Azure存储容器中。在Azure中成功存储文件后,我需要更新最初查询的表中的标志。为此,我将主键设置为头的一部分,但在azureendpoint执行后,头值将被重置。因此,我无法检索初始头,因此无法检索所需的主键值。什么是理想的方式来存储在整个路线中可访问的值?

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}")

共有1个答案

邓正真
2023-03-14

可以将其存储在exchange属性中。您可以使用.setproperty(“key”,“value”)添加该值,并使用$ExchangeProperty(“key”)检索该值

 类似资料:
  • 问题内容: 我有一个使用Java的项目,我创建了七个记录器,可从该程序的每个位置通过外观进行访问。但是在互联网上,我看到很多例子,每个班级都有一个记录器。 最推荐的记录方式是什么? 问题答案: 每个类中的记录器都更好,更易于扩展。原因是在一类中定义一个记录器很容易将实际的记录API与记录器的配置(格式,持久性)分开。我使用了多个大型复杂的Java软件(> 100万行代码),每个类都使用一个记录器。

  • 问题内容: 虽然我对Web开发并不陌生,但对客户端MVC框架却不是很陌生。我做了一些研究,并决定尝试使用EmberJS。我浏览了TodoMVC指南,这对我来说很有意义。 我已经安装了一个非常基本的应用程序;索引路径,两个模型和一个模板。我正在运行服务器端的php脚本,该脚本返回一些数据库行。 让我感到困惑的一件事是如何在同一条路线上加载多个模型。我已经阅读了一些有关使用setupControlle

  • 问题内容: 我的一项活动遇到了一个奇怪的问题。从拍照/录像回来时,我正在显示一个对话框,允许用户命名相机。用户按下“确定”后,我将使用所请求的文件名发送给主题,该主题将复制文件(并显示进度对话框)。 由于某种原因,即使我调用,总是在主线程上调用执行复制的函数。 更改呼叫以解决问题。我还是想知道为什么它不起作用… 问题答案: 并且是那里最混乱的运营商。前者确保订阅副作用在指定的调度程序(线程)上发生

  • 问题内容: 有人可以告诉我如何在任何目录中调用我的脚本吗? 我的脚本仅返回目录中的文件数。我希望通过调用它来在任何目录中工作,而不是先复制到那里然后键入 我使用的是Mac OS X,但是有常见的方法可以在Windows和Linux上安装它吗? 问题答案: 如果您的脚本以合适的shebang行开头,例如: 并且您的脚本具有可执行位设置(适用于Linux,OS X和其他类似Unix的系统): 脚本的路

  • 我是编程新手,目前使用JavaFX作为个人组织工具。我在这里展示了一个按钮(称为book)和阶段(称为bookStages)的数组列表,一个名为addBook的VBox,以及一个名为bookButtonCount的Int设置为0。 第一个按钮将“书籍”数组列表中的一个按钮添加到VBox。vbox中的按钮应该从舞台数组列表中打开一个阶段。您应该能够多次触发该按钮,每次向vbox添加一个新按钮并将该按

  • 我如何使它能够提示用户在一行中输入多个由空格分隔的整数。如果第一个整数为0或小于0,当输入所有整数并按下回车键时,它将打印出“不良输入”。此外,我如何使它,当用户输入一个负数在行的末尾,它将停止输入数字,并使乘法所有他们在一起。 这是我到目前为止所拥有的,但我不确定我做得对不对。