mule - 如何在 mule studio 的 Groovy 脚本中引用 session 变量

标签 mule

我刚开始使用 Mule。 流程说明: 我有一个 HTTP 入站端点接收 XML 消息,我希望使用 XML 有效负载更新数据库 (derby)。 例如:我将在请求中收到 Emp Id 和 Emp 名称,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 脚本组件来更新表。 我的查询是:

r.update(conn, "INSERT INTO Employee values(#[header:session:EmpNum],#[header:session:EmpName],#[header:session:Experience],#[header:session:Role])");

但它抛出错误:

Lexical error at line 1, column 29.  Encountered: "#" (35), after : "". (org.apache.derby.iapi.error.StandardException)
  org.apache.derby.iapi.error.StandardException:-1 (null)
 Lexical error at line 1, column 29.  Encountered: "#" (35), after : "". Query: INSERT INTO Employee values(#[header:session:EmpNum],#[header:session:EmpName],#[header:session:Experience],#[header:session:Role]) Parameters: [](SQL Code: 30000, SQL State: + 42X02) (java.sql.SQLException)
  org.apache.commons.dbutils.QueryRunner:540 (null)

I have used a logger component to display the values.

#[header:session:EmpNum]

正在显示正确的值。

请帮助我如何在 Groovy 脚本中引用此 session 值?

最佳答案

当我在 Mule 中使用 Groovy 脚本分别读取流变量或 session 变量时,以下对我有用。

我使用的是读取流变量

message.getInvocationProperty('yourVarsName').toString()

我正在使用读取 session 变量

sessionVars['yoursVarsName'] or flowVars['yoursVarsName']

它们在 Mule 3.5 的 Groovy 脚本中对我来说工作得很好。

关于mule - 如何在 mule studio 的 Groovy 脚本中引用 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14772990/

相关文章:

java - Mule 信任库和 keystore

java - Mule - 从 java 类的 onCall() 方法内部调用 Controller

使用 Redis 的 Mule 缓存策略

mule - 访问多部分请求中的多个文件

compiler-errors - 找不到org.mule.module.client.MuleClient编译错误

java - 如何使用请求路径在 Mule ESB 中进行路由

java - 在http请求连接器中传递动态查询参数和路径参数

java - PHP 和 ESB(带 Mule)(ESB : Enterprise Service Bus)

拆分后的 Mule 消息属性在一个字段中显示拆分消息的所有属性值

java - 创建公共(public)类,具有依赖关系,我如何正式共享此依赖关系?