通过MULE集成服务的几种方式

6. 配置模式

Mule 3.0版本提供了“pattern”的机制。Pattern总结了实际使用过程中的常见场景,以简化的服务配置方式提供。

6.1 简单服务模式(simple service pattern)

简单服务模式用于简化同步服务调用的配置,对应消息传递方式中的请求-响应方式。

图 简单服务模式

简单服务模式通过simple-service 元素配置,主要的元素属性包括:

属性 说明
address 服务监听的地址,如vm:in
component-class Component的实现类
type
direct: 默认;

jax-ws: 将component暴露为soap式的web service(component必须基于jax-ws的注解),address一般为Http Transport;

  jax-rs: 将component暴露为rest式的web service(component必须基于@Path的注解),address一般为Http或Servlet Transport

代码示例:

<simple-service name="simple-service" address="vm://simple.in"      component-class="demo.mule.umo.Echo" />

Mule针对服务请求接入可以做额外的处理,比如增加Transformer配置进行数据转换。

6.2 桥接模式(bridge pattern)

桥接模式用于在inbound endpoint和outbound endpoint之间建立直接连接,不需要component提供业务逻辑。

图 桥接模式

桥接模式通过bridge元素配置,主要属性包括:

属性 说明
inboundAddress 服务请求接入地址
outboundAddress 服务接出的实际地址
exchange-pattern
request-response: 默认,返回处理结果;

one-way: 单向

transacted
true: 在向outbound endpoint分发时使用事务;

false: 不使用事务

代码示例:

<bridge name="queue-to-topic" transacted="true" inboundAddress="jms://myQueue"          outboundAddress="jms://topic:myTopic" />

Mule在接入、接出的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。如果使用事务控制,对于异构的协议之间的事务需要有支持XA的事务控制器。

6.3 校验器模式(validator pattern)

校验器模式通过定义一个校验过滤器过滤服务请求,并同步返回ACK(ACKnowledge)或NACK(Not Acknowledge)结果。通过校验的服务请求被异步分发给处理方。

图 校验器模式

校验器模式通过validator元素配置,主要属性包括:

属性 说明
inboundAddress 服务请求接入地址
outboundAddress 服务接出地址
ackExpression 表达式,用于构建服务请求被接收时的信息
nackExpression 表达式,用于构建服务请求被拒绝时的信息
errorExpression
@since 3.0.1

  表达式,用于构建在服务请求分发出错时的信息

validationFilter-ref
过滤器的引用,也可以使用子元素指定

  用于确定服务请求是否被接收

代码示例:

<validator name="integer-validator" inboundAddress="vm://validator.in"          ackExpression="#[string:GOOD:#[message:payload]@#[context:serviceName]]"          nackExpression="#[string:BAD:#[message:payload]@#[context:serviceName]]"          outboundAddress="vm://test-service.in">      <payload-type-filter expectedType="java.lang.Integer" />  </validator>

注:Mule的表达式后续补充。

6.4 web服务代理模式(web service proxy pattern)

Web服务代理模式用于将Web Service请求直接转发至远程目标Web Service服务端,Mule本身不提供实际的Web Service。

图 web服务代理模式

Web服务代理模式通过ws-proxy元素配置,主要属性包括:

属性 说明
inboundAddress Mule对外提供的地址
outboundAddress Web Service的实际地址

代码示例:

<ws:proxy name="ws-proxy"          inboundAddress="http://localhost:7006/services/Echo"          outboundAddress="http://localhost:8000/services/Echo?method=echo">  </ws:proxy>

Mule在转发的过程中可以做额外的处理,比如增加Transformer配置进行数据转换。

时间: 2024-11-02 21:44:06

通过MULE集成服务的几种方式的相关文章

用Jsp来实现文件下载功能的几种方式

1.最直接最简单的,方式是把文件地址直接放到html页面的一个链接中.这样做的缺点是把文件在服务器上的路径暴露了,并且还无法对文件下载进行其它的控制(如权限).这个就不写示例了. 2.在服务器端把文件转换成输出流,写入到response,以response把文件带到浏览器,由浏览器来提示用户是否愿意保存文件到本地.(示例如下) <%response.setContentType(fileminitype);response.setHeader("Location",filenam

Mysql 查看端口号的几种方式

链接: http://blog.itpub.net/blog/post/id/1592460/ 标题: MySQL 查看端口的几种方式 作者:lōττéry版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.] 注释:    今天通过"Navicat for MySQL"工具链接生产环境数据库时,需要输入 mysql"端口"号,所以找到了几种 查看mysql端口的方法,特此整理下提供参考.   默认端口 3306:    OS层 ***** ps

FTP文件传输协议两种方式的工作原理

FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动方式). Standard模式 FTP的客户端发送 PORT 命令到FTP server.Passive模式FTP的客户端发送 PASV命令到 FTP Server. 下面介绍一个这两种方式的工作原理: Standard模式 FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个

CSS实现的网页中文字排版的几种方式

CSS实现的网页中文字排版的几种方式!如果用得上可以直接用现成的了! 1.文字倒排(逆时针转90度)<br><br><span style="font-family:@宋体;color:red">尽人事 顺天命</span><br><br>2.文字正写竖排,中文竖排,从右往左读<br><br><div style="layout-flow: vertical-ideograp

动态产生XML文档的几种方式

xml|动态 当今世界,技术发展迅猛,不论是什么行业,大多数关键数据都是放置于数据库中进行管理的,一来目前数据库技术已经相当成熟,二来其管理功能非常强大.以往的数据库应用,其数据底层结构一般来说都是相对固定,也就是说,开发出来的应用程序是针对具体的数据结构,其应用范畴受到一定限制,开放性较差. XML作为一种可扩展性标记语言,其自描述性使其非常适用于不同应用间的数据交换,而且这种交换是不以预先规定一组数据结构定义为前提,因此具备很强的开放性,具有广阔的应用前景.为了使基于XML的业务数据交换成为

具体实现XML的三种方式

xml 在熟悉XML之前,我们至少应该了解一下这个技术到底是如何具体实现的.就目前的趋势来看(因为XML的有关标准改动都多达十七八次的,所以先不管它最后会怎样,先就目前的实现方式来看),要使得用户最后能够在客户端看到使用XML技术做出来的东西(如果要是用行业术语来解释的话,就是说,如何使用XSL级联样表转换XML的文档成其他的格式例如HTML.),主要有下面的三种实现手段: 1.第一种方式为:     让XML文档和与其关联的XSL级联样表同时被传送到客户端(通常使用的是浏览器),然后在客户端让

具体实现 XML 的三种方式

xml 在熟悉XML之前,我们至少应该了解一下这个技术到底是如何具体实现的.就目前的趋势来看(因为XML的有关标准改动都多达十七八次的,所以先不管它最后会怎样,先就目前的实现方式来看),要使得用户最后能够在客户端看到使用XML 技术做出来的东西(如果要是用行业术语来解释的话,就是说,如何使用XSL级联样表转换XML的文档成其他的格式例如HTML.),主要有下面的三种实现手段: 1.第一种方式为: 让XML文档和与其关联的XSL级联样表同时被传送到客户端(通常使用的是浏览器),然后在客户端让XML

ASP中存储过程调用的两种方式及比较

比较|存储过程|存储过程 beerfroth(原作) 本人用sql server 和asp写了一个简单的留言本,在不断的尝试中发现,分页显示留言的时候,不同的执行方式,时间上的一些差别. 下面通过对比来看看几种方式的用时对比. 一,使用存储过程分页,这种情况又分为两种方式: 第一种,使用command对象,如下: Set Cmd=server.CreateObject("Adodb.Command")Cmd.ActiveConnection=connCmd.CommandText=&q

网页添加CSS样式表的四种方式

核心提示:网页添加CSS样式表的四种方式 一.使用STYLE属性: 将STYLE属性直接加在个别的元件标签里. <元件(标签) STYLE="性质(属性)1: 设定值1; 性质(属性)2: 设定值2; ...}例如: <TD STYLE="COLOR:BLUE; font-size:9pt; font-family:"标楷体"; line-height:150%>这种用法的优点 是可灵巧应用样式於各标签中,但是缺点则是没有整篇文件的『统一性』. 二