来自头文件的camel-sql get语句

时间:2016-06-27 13:42:57

标签: apache-camel

我正在使用像这样的camel-sql组件:

<to uri="sql:select * from myTable?dataSource=#java:/MySqlDS"/>

现在我想做的是从标头值中检索sql命令。 在文档之后,我尝试了这个:

<to uri="sql::#${headers.sql}?dataSource=#java:/MySqlDS"/>

导致:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“select * from test”附近使用正确的语法

(请注意开头和结尾有两个单引号) 使用${headers.sql}会导致:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“$ {headers.sql}”附近使用正确的语法

问题:我该怎么做才能阻止双引号并最终使用有效的Sql语法?

请注意,标头值是在辅助bean的路径中设置的,而不是在xml中,因此我不能做这样的事情......或者我可以吗? :

<setHeader headerName="myHeader">
  <constant>myValue</constant>
</setHeader>

1 个答案:

答案 0 :(得分:3)

请参阅此常见问题解答动态到 http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html例如,使用<toD>作为动态广告。