编程语言
首页 > 编程语言> > 如何从Mule流向Java组件传递参数?

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

作者:互联网

我刚刚开始使用m子,无法弄清楚如何将请求标头的一部分作为参数/参数传递给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访问以上内容.打印页眉测试

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

< logger level =“ INFO” doc:name =“ Logger” message =“#[headers:INBOUND:*]” />

但是我似乎无法弄清楚如何将消息作为参数传递给processHeader,也找不到任何相关示例.任何帮助,将不胜感激.

顺便说一句,如果那很重要,我正在使用Mule 3.5.

解决方法:

为您的Java组件实现Callable接口.重写默认方法后,您将获得eventContext作为参数,在其中可以找到m子消息,从而使您可以访问标头和有效负载.示例在这里:

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,mule-el,mule-component,java
来源: https://codeday.me/bug/20191028/1956180.html