如何从Mule流向Java组件传递参数?
我刚刚开始使用mule,不知道如何将请求头的一部分作为参数/参数传递给Java组件 我的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
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将自动调用。不需要显式调用。这个答案看起来更好