Mule ESB-3.Build a webservice proxy

自从引入ESB后,系统之间不再直接依赖,我负责的这块,主要是解决Webservice的问题,使系统A不再直接依赖系统B的Webservice。

我们选择的产品是Mule ESB,所以自然要使用Mule 创建一个Webservice代理,即系统A请求到ESB,ESB请求系统B。

准备工作:

通过我的博客《Mule ESB-Basic Studio Tutorial了解Mule
ESB的基本操作,并准备开发环境。

环境:

windows 8

jdk 1.6

mule-standalone-3.5.0-M4

MuleStudio-for-win-32bit-3.5.0-201312091746

主要步骤:

1、新建一个Mule Project

2、创建一个流程

这两步很简单,不再赘述,操作结果:

3、编辑流程

    (1)新建一个flow

            打开gxpt_test_esb_1.0.mflow,拖一个flow scope 进去,命名为HttpProxyService。

    (2)添加HTTP Endpoint

            添加HTTP Endpoint,并且右击转换为outbound endpoint,打开属性窗口,输入address,即Webservice的endpoint。如http://192.168.24.46:8080/test_server_webservice/UserManagerBean

     (3)为这个Webservice创建一个客户端

         
  添加一个SOAP Component到http endpoint的前面,编辑它的属性,设置operation为proxy client

     

     (4)创建一个真正的代理服务

           添加另一个SOAP Component到proxy
client SOAP的前面,设置operation为proxy service,设置Namespace 和 Service,必须和你要代理的Webservice的wsdl相符。在WSDL Location中填上wsdl的地址,如http://192.168.24.46:8080/test_server_webservice/UserManagerBean?wsdl

也可以将该文件放在项目的文件夹中,如src/

    

     (5)添加一个 HTTP inbound endpoint,设置address,如http://192.168.24.12:8888/UserManager 
 

最后,完整的flow应该是下面这个样子:

[html] view plaincopyprint?

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"  
  3.     xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"  
  4.     xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.1"  
  5.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  6.     xsi:schemaLocation="http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd  
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd  
  8. http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd  
  9. http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/current/mule-cxf.xsd  
  10. http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">  
  11.     <flow name="HttpProxyService" doc:name="HttpProxyService">  
  12.         <http:inbound-endpoint exchange-pattern="request-response" address="http://192.168.24.12:8888/UserManager" doc:name="HTTP"/>  
  13.         <!-- wsdlLocation="service/UserManagerBean.wsdl" 也可以使用该属性替换掉url-->  
  14.         <cxf:proxy-service namespace="http://ejb.jialin.com/" service="UserManagerBean" payload="body"  wsdlLocation="http://192.168.24.46:8080/test_server_webservice/UserManagerBean?wsdl" doc:name="SOAP"/>  
  15.         <cxf:proxy-client payload="body" enableMuleSoapHeaders="true" doc:name="SOAP"/>  
  16.         <http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://192.168.24.46:8080/test_server_webservice/UserManagerBean" doc:name="HTTP"/>  
  17.     </flow>  
  18.     <flow name="gxpt_test_esb_1.0Flow1" doc:name="gxpt_test_esb_1.0Flow1"/>  
  19. </mule>  
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
    xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/current/mule-cxf.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
    <flow name="HttpProxyService" doc:name="HttpProxyService">
        <http:inbound-endpoint exchange-pattern="request-response" address="http://192.168.24.12:8888/UserManager" doc:name="HTTP"/>
        <!-- wsdlLocation="service/UserManagerBean.wsdl" 也可以使用该属性替换掉url-->
        <cxf:proxy-service namespace="http://ejb.jialin.com/" service="UserManagerBean" payload="body"  wsdlLocation="http://192.168.24.46:8080/test_server_webservice/UserManagerBean?wsdl" doc:name="SOAP"/>
        <cxf:proxy-client payload="body" enableMuleSoapHeaders="true" doc:name="SOAP"/>
        <http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://192.168.24.46:8080/test_server_webservice/UserManagerBean" doc:name="HTTP"/>
    </flow>
    <flow name="gxpt_test_esb_1.0Flow1" doc:name="gxpt_test_esb_1.0Flow1"/>
</mule>

OK,接下你可以run mule server,在浏览器中输入wsdl地址,看一下结果啦。

如果输入代理地址和直接输入目标地址,显示的wsdl一样,说明配置正确。

小结:

在这篇文章中,我介绍了如何使用mule创建一个Webservice代理,不需要使用任何转换器,也不需要写一行代码,完全是配置完成的。

在后续文章中将继续聊Mule ESB,敬请关注。

时间: 2024-09-09 12:00:34

Mule ESB-3.Build a webservice proxy的相关文章

Mule ESB 学习笔记(11)Web Service Proxy(这里是一个可以正常运行的例子)

一.WebSevice Proxy 简介      WebService Proxy 是ESB中最常见的使用场景之一,即通过 ESB 直接转发 WebService Client 的 SOAP 请求,并将 WebServcie Provider 的 SOAP 响应转发给 WebService Client ,此时的ESB就是一个WebService Proxy.   二.WebSevice Proxy 在 Mule 中的产生背景       Mule3.0 新增了一些比较有亮点的新特性 ,其中包

MULE ESB中的一些值得关注的地方

Mule框架提供了一个可升级的环境,可以把自己的业务组件部署在里面.Mule管理所有组件之间的交互,不管它们是在同一个虚拟机中还是在internet上,也不管底层使用的传输方式. Mule围绕着企业服务总线(ESB)架构进行设计,保证了不同的组件或者应用可以通过公共的消息总线进行交互,公共的消息总线一般是由JMS或者其他消息服务器来实现. 它的主要特点有:    1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker).    2.可插入的连接性:比如Jms,jdbc,tcp,u

MULE ESB环境搭建和例子(通过装插件的方式)

环境搭建和例子: Download mule standaloe from web site: 1.    http://www.mulesoft.org/download-mule-esb-community-edition 2.    Unzip to a path(such as: D:\mulesl312)   Installing Mule IDE in Eclipse 3.    Start Eclipse, and set up a workspace foryour instal

anypoint studio-最近在看mule esb,求指导

问题描述 最近在看mule esb,求指导 刚开始看mule esb,官网上下载的确实anypoint studio,大神给解答解答mule studio和anypoint studio是同样的东西吗?不是的话求给个mule studio的下载链接以及相关文档,感激不尽! 解决方案 anypoint studio是mule studio的升级版 解决方案二: anypoint studio 是最新的名字 ,以前的名字不用了!mule studio 是以前的名字 ,anypoint studio可

Ant build weblogic webservice出错,求大家帮忙看看,出点主意。

问题描述 我在用Ant build Weblogic WebService 为了生成WSDL文件时,出现错误并中断.我的环境:  Ant version:  Apache Ant version 1.7.0  Java version: JDK1.6_U16 <Only>  Based-Weblogic jar: 8.1 sp2      ---|..weblogicweblogic.jar      ---|..weblogicwebservice.jar      ---|..weblog

Mule ESB 3.3与CloudHub

MuleSoft最近发布了企业服务总线(ESB)产品Mule ESB 3.3.在新版本中,除了应用程序集成之外,Mule ESB还拥有了数据集成功能:从而为开发者提供了一个面向本地或云端应用的集成解决方案. Mule ESB 3.3提供了集成本地应用.SaaS和定制软件的套件:这些功能都可以在新的Mule Studio中找到.Mule ESB 3.3有两个分支:企业版和开源社区版.Mule ESB 3.3企业版包含了一系列相关组件,比如DataMapper, CloudHub和Cloud Con

MULE ESB简介

Mule ESB是一个轻量级的.开源的.基于Java的ESB(Enterprise Services Bus)和企业应用集成平台.它能够让企业开发人员快速地.简便地集成多个应用程序,无论这些应用程序是用什么样的技术开发的(Java, .NET或其它),也无论这些系统部署在什么样的平台(Unix, Linux, Windows),也无论这些应用程序采用什么样的通讯协议(SOAP, Socket, RMI, EJB-). 和Java平台的ESB实现不同,Mule ESB突出了以下几方面的特色: 1.

关于MULE ESB相关的介绍

1. 简介 Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换.Mule ESB支持集成现有系统而无论其底层采用何种技术,如JMS.Web Services.JDBC.HTTP以及其他技术. 2. 整体结构 图 整体结构 从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由).Transaction Management(事务管理).Transformation(

一步一步学Mule ESB——(第一篇:基础篇)

mule 它是一个以Java为核心的轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的.Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑.UMO可以是POJO,JavaBean 等等.它支持30多种传输协议(file,FTP,UDP,TCP,email,HTTP,SOAP,JM