我刚开始和骡子合作。流程描述:我有一个 HTTP 入站端点接收 XML 消息,并且我使用 XML 有效负载更新数据库 (derby)。例如:我将在请求中收到 Emp Id 和 Emp name, Exp。我必须用这些值更新表格。
我的实现:
收到 XML 输入后,我使用消息属性转换器将值保存在 Session 范围内。
<message-properties-transformer scope="session" doc:name="Message Properties">
<add-message-property key="EmpNum"
value="#[xpath:/CreateEmployee/EmpNum]" />
</message-properties-transformer>
像上面一样。然后我有 Groovy Script 组件来更新表。我的查询是:
r.update(conn, "INSERT INTO Employee values(#[header:session:EmpNum],#[header:session:EmpName],#[header:session:Experience],#[header:session:Role])");
但它抛出错误:
第 1 行第 29 列出现词汇错误。遇到:"#" (35),在:"" 之后。(org.apache.derby.iapi.error.StandardException) org.apache.derby.iapi.error.StandardException:-1 (null) 第 1 行第 29 列出现词汇错误。遇到:"#" (35),在:"" 之后。查询:INSERT INTO Employee values(#[header:session:EmpNum],#[header:session:EmpName],#[header:session:Experience],#[header:session:Role]) 参数:[](SQL 代码: 30000, SQL 状态: + 42X02) (java.sql.SQLException) org.apache.commons.dbutils.QueryRunner:540(空)
我使用了一个记录器组件来显示这些值。
#[header:session:EmpNum]
正在显示正确的值。
请帮助我如何在 Groovy 脚本中引用此会话值?