Camel存储过程组件语法

时间:2016-05-18 14:16:26

标签: stored-procedures apache-camel

我使用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

1 个答案:

答案 0 :(得分:0)

您不能在OUT参数中使用$ {header.xxx}语法引用标头。当前实现将输出存储为Map,您可以在其中定义要在纯文本中使用的映射中的键,例如OUT响应。

我们可以考虑为Camel组件添加一个新功能,以便您可以告诉它将OUT存储在标头而不是邮件正文中。

欢迎您在问题跟踪器中记录JIRA票证:http://camel.apache.org/support.html