Mule ESB中entry-point-resolver的使用(4) Method Entry Point Resolver

回眸只為那壹抹淺笑 提交于 2019-12-03 10:25:40

Method entry point resolver是比较常用的entry point resolver。它根据用户提供的方法名以及Mule Message的Payload类型来匹配entry point。它的使用方式如下:

​<method-entry-point-resolver>
   <include-entry-point method="MethodEntryPointMethod1"/>
   <include-entry-point method="MethodEntryPointMethod2"/>
</method-entry-point-resolver>

​

这里指定了两个方法名,Mule ESB在匹配entry point时会先查找匹配第一个方法名的方法,如果没有找到,再查找匹配第二个方法名的方法,只要找到一个匹配的方法,会直接执行这个方法获得结果,而不会匹配其他匹配的方法。例如,我们在TestComponent类中定义了两个方法:

public void MethodEntryPointMethod1(String message)
{
	logger.info("MethodEntryPointMethod1's message is:" + message);
}
	
public void MethodEntryPointMethod2(String message)
{
	logger.info("MethodEntryPointMethod2's message is:" + message);
}

在流程文件里设置使用method entry point resolver

<component doc:name="Java"> 
 <entry-point-resolver-set>
    <method-entry-point-resolver>
       <include-entry-point method="MethodEntryPointMethod1"/>
       <include-entry-point method="MethodEntryPointMethod2"/>
    </method-entry-point-resolver>
 </entry-point-resolver-set>
 <spring-object bean="methodEntryTest"/>
</component>  

运行项目,可以看到MethodEntryPointMethod1方法被匹配执行

如果我们修改MethodEntryPointMethod1的参数类型为int,这和mule message的payload类型不匹配,MethodEntryPointMethod2方法将被匹配执行。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!