自从引入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、创建一个流程

这两步非常easy,不再赘述。操作结果:

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创建一个client
         
  加入一个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应该是以下这个样子:



<?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,敬请关注。


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

  1. Mule ESB学习【转-结合了网络上的一些资源】

    1.SOA标准之一:SCA架构思想 SOA在Java领域有两套标准:一个是SUN推出的JBI(没有得到BEA和IBM的承认),另外一个是:IBM和BEA等公司推出的SCA和SDO标准. JBI之关注J ...

  2. Mule ESB 介绍

    Mule ESB 介绍 博客分类: ESB ESB  1. 简介 Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换.Mule ...

  3. EnjoyingSoft之Mule ESB开发教程第二篇:Mule ESB基本概念

    目录 1. 使用Anypoint Studio开发 2. Mule ESB Application Structure - Mule ESB应用程序结构 3. Mule ESB Application ...

  4. EnjoyingSoft之Mule ESB开发教程第六篇:Data Transform - 数据转换

    目录 1. 数据转换概念 2. 数据智能感知 - DataSense 3. 简单数据转换组件 3.1 Object to JSON 3.2 JSON to XML 3.3 JSON to Object ...

  5. Mule ESB 自带例子hello初体验

    1 配置的流的效果图 2 应用配置文件hello.xml内容 <?xml version="1.0" encoding="UTF-8"?> < ...

  6. Mule ESB 安装基本配置要求

    Hardware Requirements* 2GHz, dual-core CPU, or 2 virtual CPUs in virtualized environments 2GB of RAM ...

  7. EnjoyingSoft之Mule ESB开发教程系列第五篇:控制消息的流向-数据路由

    目录 1. 使用场景 2. 基于消息头的路由 2.1 使用JSON提交订单的消息 2.2 使用XML提交订单的消息 2.3 使用Choice组件判断订单格式 3. 基于消息内容的路由 4. 其他控制流 ...

  8. EnjoyingSoft之Mule ESB开发教程第一篇:初识Mule ESB

    目录 1. Mule ESB基本介绍 2. Mule ESB社区版和企业版 3. Mule ESB常用场景 4. Mule ESB软件安装 客户端安装 服务端安装 5. 第一个Mule ESB应用- ...

  9. EnjoyingSoft之Mule ESB开发教程第三篇:Mule message structure - Mule message结构

    目录 1. 探索Mule Message结构 2. Mule Message的Payload 3. Mule Message的Property 4. Mule Message的Attachment 5 ...

随机推荐

  1. 构造函数中this,return的详解

    function Foo(name,age){ this.name=name; this.age=age; } var foo=new Foo("Tom",14); foo.nam ...

  2. Android环境的搭建遇到的问题和解决方案

    安卓环境的搭建,我花了将近一天的时间,在最后终于找到了一个比较好的方案. 第一个问题是安卓的官网(http://developer.android.com)很难登录.SDK和ADT都是需要在官网上下载 ...

  3. 《java数据结构与算法》系列之“开篇”

    大学的时候学习数据结构,当时吧虽然没挂这门课,但是确实学的不咋地,再但是其实自己一直都觉得数据结构很重要,是基础,只有基础好了,后面的路才能走的更好. 懒惰真的是天下的罪恶之源.所以一直到现在都毕业了 ...

  4. AI不与人为敌

    业界广为流传着一句话:有多少人工就有多少智能. 其实还应该有一句话:有多少付出就因该有多少回报.公正是世界永恒的话题. 一.人工智能还是人工愚蠢 科技从来没有善恶,也不会杀人,愚蠢的人比聪明的人做的错 ...

  5. Android进度条控件ProgressBar使用

    ProgressBar有四种样式,圆形的(大,中,小)和直条形的(水平) 对应的style为 <LinearLayout xmlns:android="http://schemas.a ...

  6. 数据清理,预处理 pandas dataframe 操作技巧 总结

    dsoft2 = data1.loc[(data1['程'] == "轻") | (data1['程'] == "中")]设置x下标plt.xticks(np. ...

  7. 【转载】使用IntelliJ IDEA提示找不到struts-default文件

    创建strus,参考文如下: https://blog.csdn.net/u010358168/article/details/79769137 使用IntelliJ IDEA创建struts2工程时 ...

  8. 【剑指Offer】62、二叉搜索树的第k个结点

      题目描述:   给定一棵二叉搜索树,请找出其中的第k小的结点.例如(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4.   解题思路:   本题实际上比较简单,主要还是考察对 ...

  9. sass使用中出现的问题

    问题一:ruby按照官方文档安装后更换gem源时,报错Error fetching https://gems.ruby-china.org/: bad response Not Found 404 ( ...

  10. PHP多进程初探 --- 利用多进程开发点儿东西吧

    [原文地址:https://blog.ti-node.com/blog...] 干巴巴地叨逼叨了这么久,时候表演真正的技术了! 做个高端点儿的玩意吧,加入我们要做一个任务系统,这个系统可以在后台帮我们 ...