2

我正在使用文件端点来监视文件的更改。

  1. 每当编辑文件时(即上次修改时间更改),我都需要得到通知
  2. 我应该使用 Spring 属性占位符从属性中指定文件的路径

如果我写,一切正常:

<camelContext>
  <route>
    <from uri="file:/my/path?fileName=myFilename.txt&amp;noop=true&amp;idempotentKey=${file:name}-${file:modified}" />
    <log message="Received file: ${header.CamelFilePath} (${header.CamelFileLastModified})" />
    <to uri="direct:result" />
  </route>
</camelContext>

但是,如果我将代码更改为使用 Spring 属性,从而创建一个<endpoint>,它就不再起作用了。

<camelContext>
  <endpoint id="fileEndpoint"
  uri="file://${ids.log.dir}?fileName=${ids.log.file}&amp;noop=true&amp;idempotentKey=${file:name}-${file:modified}" />

  <route id="fileRoute">
    <from ref="fileEndpoint" />
    <log message="Received file: ${header.CamelFilePath} (${header.CamelFileLastModified})" />
    <to uri="direct:result" />
  </route>
</camelContext>

我想${}符号和${file:...}占位符过早扩展存在问题。

我该如何解决这个问题?(我将使用 Spring 属性,而不是 Camel 的。)有什么办法可以逃脱$

4

1 回答 1

1

Camel 属性占位符正在使用{{}}样式。查看更多详情

这个常见问题解答:

于 2015-04-11T06:05:16.637 回答