如何修复文本中缺少$ {的错误:错误-Apache Camel 2.12升级到2.16.4

时间:2019-07-12 17:58:34

标签: apache-camel

我们正在从Apache Camel 2.12升级到2.16.4,并遇到其中一条路由的问题。

Caused by: java.lang.IllegalArgumentException: Missing ${ from the text: file:C:\OnDemandOutput?fileName=RPFPos_L2W.$simple{in.header.accountNum}-${date:now:yyyyMMddHHmmssSSS}.csv
<camelContext xmlns="http://camel.apache.org/schema/spring">

    <propertyPlaceholder id="ignoreId" location="classpath:reformMB.properties"
                               prefixToken="${" suffixToken="}"/>

    <route id="sendNotification">
        <from uri="jms:queue:queue.sendNotification"/>
        <to uri="file:${OnDemand.output.url}?fileName=RPFPos_L2W.$simple{in.header.accountNum}-${date:now:yyyyMMddHHmmssSSS}.csv"/> 
    </route>
</camelContext>

根据文档,这应该有效。有人可以帮助我了解问题在哪里吗?

根据official documentation,应该可以使用$simple{...}来引用骆驼的属性,如下所示:

  

使用Camels简单语言与Spring物业占位符冲突

     

使用Spring桥接占位符时要注意,然后spring $ {}语法与Camel中的Simple冲突,因此要小心。

     

示例:

<setHeader headerName="Exchange.FILE_NAME">
  <simple>{{file.rootdir}}/${in.header.CamelFileName}</simple> 
</setHeader>
     

与Spring属性占位符冲突,您应该使用$simple{}来指示在驼峰中使用简单语言。

<setHeader headerName="Exchange.FILE_NAME">
    <simple>{{file.rootdir}}/$simple{in.header.CamelFileName}</simple
</setHeader>

0 个答案:

没有答案