尝试按照这种方法构建一个通用的REST到存储过程的桥梁:
from("jetty:http://0.0.0.0:8080/{procedure}")
.to("sql-stored:${header.procedure}()");
哪个给出了错误
org.apache.camel.component.sql.stored.template.generated.ParseException: Encountered " <SIMPLE_EXP_TOKEN> "${header.procedure} "" at line 1, column 1.
Was expecting:
<IDENTIFIER> ...
at org.apache.camel.component.sql.stored.template.generated.SSPTParser.generateParseException(SSPTParser.java:370)
at org.apache.camel.component.sql.stored.template.generated.SSPTParser.jj_consume_token(SSPTParser.java:308)
at org.apache.camel.component.sql.stored.template.generated.SSPTParser.parse(SSPTParser.java:27)
at org.apache.camel.component.sql.stored.template.TemplateParser.parseTemplate(TemplateParser.java:41)
... 38 more
我在很多地方看到sql-stored
中使用标头变量的示例,但总是绑定变量时。如何动态设置存储过程的名称?
答案 0 :(得分:1)
您正尝试将邮件发送到动态端点。目标uri将取决于$ {header.procedure}内容。
从Camel 2.16起,您可以使用&#34; toD&#34;告诉Camel您的目标端点是动态的。
此处有更多信息http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html和http://camel.apache.org/message-endpoint.html