我正在使用camel存储过程来调用数据库中的过程。调用表达式如下:
<camel:to uri="sql-stored:check_data(VARCHAR ${headers.id1},VARCHAR ${headers.id1},OUT INTEGER ${headers.response})?dataSource=ds" />
程序是这样的:
check_data
@id1 varchar(50),
@bid2 varchar(50),
@response int output
经过试用,组件抛出了这个:
org.apache.camel.component.sql.stored.template.ast.ParseRuntimeException: org.apache.camel.component.sql.stored.template.generated.ParseException: Encountered " <SIMPLE_EXP_TOKEN> "${headers.response} "" at line 1, column 80.
Was expecting:
<IDENTIFIER> ...
我已经检查了骆驼网站中的语法示例,它似乎是真的,但我没有发现这个定义有任何错误。我错过了什么?
Thx
OUT参数中不能使用${header.xxx}语法引用标头。当前的实现将输出存储为Map,您可以在其中定义映射中的键以纯文本形式使用,例如OUT响应。
我们可以考虑为Camel组件添加一个新功能,这样您就可以告诉它将OUT存储在标头中,而不是消息体中。
欢迎您在问题跟踪器中登录JIRA票证,网址为:http://camel.apache.org/support.html