我使用camel存储过程调用db中的过程。调用表达式是这样的:
<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> ...
我已经检查了camel网站中的语法示例,看起来确实如此,但我发现这个定义没有任何问题。我错过了什么?
THX
答案 0 :(得分:0)
您不能在OUT参数中使用$ {header.xxx}语法引用标头。当前实现将输出存储为Map,您可以在其中定义要在纯文本中使用的映射中的键,例如OUT响应。
我们可以考虑为Camel组件添加一个新功能,以便您可以告诉它将OUT存储在标头而不是邮件正文中。
欢迎您在问题跟踪器中记录JIRA票证:http://camel.apache.org/support.html