在路线之间保存骆驼消息

时间:2015-04-09 19:43:11

标签: spring apache-camel

我们使用Spring DSL来定义驼峰路线。在一种情况下,邮件标题消失。 我们的设计需要审计跟踪来帮助调试问题,并证明消息按设计移动。 我们使用并引用审计处理器从2个头创建消息文件名,1是常量,另一个是唯一变量。 在变量1的情况下,我们不能使用setHeader。 以下是一个通用示例,其中包括失败的注释尝试:

  <route id="msg_in">
      <from uri="direct:msg_in" />
      <wireTap ref="audit" processorRef="auditPreprocessor" />
      <to uri="direct:to_json" />
  </route>

  <route id="to_json">
      <from uri="direct:to_json" />
      <!-- the below seemed to have failed -->
      <!-- <setProperty propertyName="SaveId"> -->
      <!--  <simple>${in.header.UniqueId}</simple> -->
      <!-- </setProperty> -->
      <bean ref="JDBCProcessor1" />
      <!-- headers still exist here -->
      <bean ref="ToJSON1" />
      <!-- headers still exist here, and wireTap on the next line works -->
      <wireTap ref="audit" processorRef="auditPreprocessor" />
      <bean ref="toJSON" />
      <!-- Message headers do not get to here so we need to set them again ? -->
      <setHeader headerName="Hdr1">
          <constant>Update1</constant>
      </setHeader>
      <!-- <setHeader headerName="UniqueId"> -->
      <!--  <simple>${exchangeProperty:SaveId}</simple> ... this didn't work -->
      <!--  <simple>${properties:SaveId}</simple>    ... this didn't work -->
      <!-- </setHeader> -->
      <to uri="direct:msg_out" />
  </route>
  <route id="msg_out">
      <from uri="direct:msg_out" />
      <!-- we try wireTap here but no headers, saved file is null-null
       and gets continually overwritten, so no usable audit trail -->
  </route>

我花了很多时间试图在Spring xml中找到正确的方法,但还没有运气。

如果有人可以提供帮助,请提前致谢。

0 个答案:

没有答案