我正在使用像这样的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>
答案 0 :(得分:3)
请参阅此常见问题解答动态到
http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html例如,使用<toD>
作为动态广告。