文档章节

Mule ESB中entry-point-resolver的使用(9) Entry Point Resolver Set和 Legacy Entry Point Resolver Set

杨延庆
 杨延庆
发布于 2016/08/16 16:42
字数 525
阅读 35
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

   前面的系列介绍了Mule ESB提供和用户自定义的Entry Point Resolver,如果我们在实际使用中需要用到多个Entry Point Resolver进行Entry Point 匹配时,我们需要使用Entry Point Resolver Set。

   Mule ESB提供的Entry Point Resolver Set包含两种,一种是系统默认的Entry Point Resolver Set:

Legacy Entry Point Resolver Set,它包含了实现标准逻辑的Entry Point Resolver,这些Resolver包括

  •  Annotation Entry Point Resolver 

      这个Entry Point Resolver前面没有提到,它主要是用于解析带有@Service标签的Component类的方法,匹配的方法所有的参数都需要有Mule Expression Language注解,例如以下的方法     

public Object method1(@XPath ("/foo/bar")String bar, 
  @Payload Document doc, @InboundHeaders("name")String name)
{
  ........
}

      这个方法的所有参数就包含了MEL注解@XPath, @Payload, @InboundHeader。第一个注解表示从Document类型的Payload中根据XPath “/foo/bar"获取的节点文本。第二个注解表示将Mule Message的Payload赋给参数doc,第三个注解表示从Mule inbound property中读取name属性,赋给参数name。

      如果Component中符合注解要求的方法多于一个,需要在Mule inbound property中设置"method" property,指定匹配的方法名。

  • Property Entry Point Resolver 
  • Callable Entry Point Resolver
  • Reflection Entry Point Resolver

     Legacy Entry Point Resolver Set默认包含这些Entry Point Resolver,如果需要添加其他的entry point resolver,可以使用legacy-entry-point-resolver-set标签    

<legacy-entry-point-resolver-set>
   <xxx-entry-point-resolver />
</legacy-entry-point-resolver-set>

   另一种Entry Point Resolver Set是Entry Point Resolver Set,是为用户自定义指定Resolver指定的Set,用户可以像以下方式使用 

<legacy-entry-point-resolver-set>
   <xxx-entry-point-resolver />
   <xxxx-entry-point-resolver />
</legacy-entry-point-resolver-set>

   无论是Legacy Entry Point Resolver Set,还是Entry Point Resolver Set,匹配Entry Point时逐一使用Set中定义的Resolver进行匹配,如果匹配失败,记入异常信息,继续使用下一个Resolver进行匹配,直到找到第一个匹配的Entry Point执行,或者所有的Entry Point Resolver都匹配完毕,没有找到匹配的Entry Point。

具体实现代码如下

 

© 著作权归作者所有

杨延庆

杨延庆

粉丝 35
博文 48
码字总数 44823
作品 0
浦东
架构师
私信 提问
Mule ESB中entry-point-resolver的使用(1) 总论

前面介绍Mule ESB使用的系列文章中我们使用了自定义的Java Transformer和Java Component,用于接收和处理Mule Message。然而我们使用的Transformer和Component都必须实现AbstractTransformer...

杨延庆
2016/08/16
91
0
Mule ESB中entry-point-resolver的使用(2) Callable Entry Point Resolver

Callable Entry Point Resolver 定义的entry point指向实现了org.mule.api.lifecycle.Callable接口的Component类的onCall(MuleEventContext eventContext)方法,Mule ESB默认的Component Ent......

杨延庆
2016/08/16
31
0
Mule ESB中entry-point-resolver的使用(8) Custom Entry Point Resolver

前面介绍了6种Mule ESB提供的Entry Point Resolver,如果在实际应用中觉得这些Entry Point Resolver不能满足实际需要,可以自定义Entry Point Resolver。自定义的Entry Point Resolver类必须...

杨延庆
2016/08/16
21
0
Mule ESB中entry-point-resolver的使用(4) Method Entry Point Resolver

Method entry point resolver是比较常用的entry point resolver。它根据用户提供的方法名以及Mule Message的Payload类型来匹配entry point。它的使用方式如下: 这里指定了两个方法名,Mule ...

杨延庆
2016/08/16
39
0
Mule ESB中entry-point-resolver的使用(3) Property Entry Point Resolver

Property Entry Point Resolver定义的entry point指向Mule流程中inbound property中某个指定的property设定的方法名(如果这个property没有在property entry point resolver中指定,将使用默认...

杨延庆
2016/08/16
59
0

没有更多内容

加载失败,请刷新页面

加载更多

web前端入门到实战:图解原生dialog标签(非常详细)

在html5中,新增了很多语义化的标签。如footer、header之类的,今天的主角是dialog标签 顾名思义,就是用来定义对话框的。目前只有Chrome和Safari支持该标签,所以用的不多,不过确实挺好用的...

梦想编程
24分钟前
3
0
一些php常用函数积累

本文链接<?php// id: ecffe70d3af54df9bad97b61918ace7d global $ct_path, $ct_log_path;$log_path = "test_php.txt";// 是否先log到buffer,再通过CT_flush()一次性写入文件$......

一字见心
24分钟前
3
0
IntelliJ idea中 注释代码折叠

visual studio中有#region 可以折叠代码,IntelliJ idea 中也有类似功能 //region 描述代码//endregion

format
25分钟前
4
0
oracle表中更改主键

一、数据表有主键但无主键约束名 先删除之前的主键,后添加主键 ,执行SQL: a. alter table 表名 drop primary key; b. alter table 表名 add primary key(想要更改的字段名称); 二、数据表...

_Somuns
26分钟前
3
0
jQuery AJAX提交表单

我有一个名称为orderproductForm的表单,输入的数量不确定。 我想做某种jQuery.get或ajax或类似的事情,它将通过Ajax调用页面,并发送所有形式为orderproductForm的输入。 我想一种方法是做类...

技术盛宴
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部