如何从Mule流向Java组件传递参数?

如何从Mule流向Java组件传递参数?,java,mule,mule-el,mule-component,Java,Mule,Mule El,Mule Component,我刚刚开始使用mule,不知道如何将请求头的一部分作为参数/参数传递给Java组件 我的Java组件如下 public String processHeader(String in) { //process header System.out.print(" Header" + in); } 我可以通过以下方式从流访问processHeader <component> <method-entry-point-r

我刚刚开始使用mule,不知道如何将请求头的一部分作为参数/参数传递给Java组件

我的Java组件如下

public String processHeader(String in)
{
   //process header
   System.out.print(" Header" + in);
}
我可以通过以下方式从流访问
processHeader

            <component> 
              <method-entry-point-resolver> 
              <include-entry-point method="processHeader" /> 
              </method-entry-point-resolver> 
              <singleton-object class="my.test.mule.Processor" /> 
            </component> 

使用
http://localhost:8080/test
。打印
标题测试

我可以使用以下命令转储标题的内容

但是我似乎不知道如何将
消息作为参数传递给
processHeader
,也找不到任何相关示例。任何帮助都将不胜感激


顺便说一句,我正在使用
mule3.5
,如果这很重要的话。

为java组件实现可调用接口。当覆盖默认方法时,您将获得eventContext作为参数,您可以在其中找到mule消息,该消息反过来允许您访问头和负载。样本如下:

import org.mule.api.MuleEventContext;
import org.mule.api.lifecycle.Callable;
import org.mule.api.transport.PropertyScope;
public class Test implements Callable {

@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
    eventContext.getMessage().getProperty("header1", PropertyScope.INBOUND);
    return null;
}
}

您有许多选择:

可用于元件输入的参数注入注释 点和变换器方法,此注释可用于执行 传递结果的消息负载上的Mule表达式 进入方法

此外:

此批注控制当前邮件入站标头的显示方式 传递到一个方法中。注释支持、映射、列表、单个 标题、通配符和可选项。它可以在组件上使用 入口点和@Transformer方法

可能与以下内容一起使用:

可用于元件输入的参数注入注释 使用@transformer定义的点和变换器方法 注释,此注释控制当前消息有效负载的方式 通过执行 消息有效负载与带注释的参数类型匹配。例如,如果 您需要一个XML文档,它可以被注入到 组件入口点并自动转换为 org.wc3.dom.Document


您也可以实现不同响应中所述的Callable,但这比此解决方案的表现力要差得多。

您使用的是哪个版本的Mule?此onCall将自动调用。不需要显式调用。这个答案看起来更好