ESB开发WebService接口
1 概述
在进行系统间集成时经常利用WebService,但是从建立WebService和调用的重复性和维护性的工作量都相当大。
首先简单介绍一下,ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
2 预期读者
1. 数通畅联新进员工
2. 广大技术爱好者
3 名词解释
AEAI ESB:应用集成平台主要作为企业信息系统的“龙骨”来集成各业务系统,一般称之为企业服务总线(Enterprise Service BUS,ESB),在数通畅联软件的产品家族中应用集成平台命名为AEAI ESB。
Web Server:是一种开发web服务的技术规范,按照web services规范开发的web服务组件,可以用来进行企业应用系统集成。
传输服务: 必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。
多种服务集成方式:如HTTP ,WEB等。
通信:服务发布、订阅,响应 请求,同步异步消息,路由和寻址等;
服务安全: 认证和授权、不可否认和机密性、安全标准的支持等;
服务质量: 事务,服务的可交付性等;
服务等级: 性能、可用性等
4 总体思路
1. 简单的账号、密码验证接口,输入账号及密码验证成功与否。
2. 初步了解WebService相关知识
5 实现步骤
5.1 简单参数与简单返回值
首先创建WS服务,样例为Demo,别名“账户”, 本WebService服务里面只有一个操作operation1, 两个入参(userCode、userPassword)及一个出参(RESULT),与DemoOperation1子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。
1. 在添加的操作上右键点击,在弹出的页面中选择需要绑定流程的位置,点击OK后将在对应位置自动生成基本的流程,可到对应位置进行流程的编辑,本例将样例创建于基础样例中。
2. 在子流程中创建流程。
a) 首先接收参数(账号、密码)通过判断是否为空,并添加到全局变量中。
b)通过分支判断如果账号密码为空则直接输出。
c) 如果有值,则进行数据库查询,并判断是否正确并输出
3. 利用soapUI测试,结果如下图:
5.2 简单参数与简单返回值
复用样例Demo,别名“账户”, 本WebService服务里面只有一个操作operation2, 添加对象参数及一个出参(RESULT),与DemoOperation2子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。
1. 在入参过多的情况下可以采用添加对象参数的形式,在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:
2. 流程图复用简单参数与简单返回值,并在代码中进行扩展开发,如下图:
a) 接收新建的参数类,并获取参数。
b) 分支及判断与上例一致,在输出节点是我们通过jsonObject对象返回,如图:
3. 利用soapUI测试,结果如下图:
5.3 对象参数与简单返回值
首先创建WS服务,样例为UserCode,别名“账户”, 本WebService服务里面只有一个操作test, 一个入参对象reqInfo及一个出参(RESULT),与UserCodeTest子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。
1. 在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:
2. 在子流程中创建流程。
a) 首先接收对象参数(账号、密码),并添加到全局变量中。
b) 通过分支判断如果账号密码为空则直接输出。
c) 进行数据库查询,并判断是否正确并输出
3. 利用soapUI测试,结果如下图:
5.4 简单参数与ResultStatus返回值
首先创建WS服务,样例为UserCode,别名“账户”, 本WebService服务里面只有一个操作test1, 两个入参对象userCode、userPassword及一个出参对象(RESULT),与UserCodeTest1子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。
1. 在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:
2. 在子流程中创建流程。
a) 首先接收对象参数(账号、密码),并添加到全局变量中。
b) 进行数据库查询,并判断是否正确并输出
3. 利用soapUI测试,结果如下图:
5.5 简单参数与返回值对象List
首先创建WS服务,样例为UserCode,别名“账户”, 本WebService服务里面只有一个操作test3, 一个入参对象reqInfo及一个出参(RESULT)list集合,与UserCodeTest3子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。
1. 在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:
2. 在子流程中创建流程。
a) 首先接收对象参数(账号、密码),并添加到全局变量中。
b) 进行数据库查询,并判断是否正确并输出
3. 利用soapUI测试,结果如下图:
6 心得总结
以上为笔者通过ESB进行的Web Service接口的开发,实现不同类型的入参及不同类型出参的演示的操作。
在工作中,要学会对自己锁定的目标坚定不移。否则,遇到困难,只要有机会,有退路,我们就会本能地尝试绕过,或者退却。只有瞄着目标不放,我们才会 穷尽全力推翻,或者跨越那些障碍。通过这篇文档的整理编写使笔者对以往做过的内容也加深了记忆。善于记录,勤加整理,温故知新,才能使自己更快成长。
ESB开发WebService接口的更多相关文章
- 使用cxf开发webservice接口
项目中经常用到开发webservice接口,及调用webService接口.这里讲解如何使用cxf开发webService接口. 一.webservice介绍及理解 webservice是一种跨平台, ...
- axis2开发webservice接口入门到精通详解(转)
最近在开发接口,在网上发现了两篇不错的文章,给大家分享下: 第一篇: 一.Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本: ...
- 十九、.net core使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问webservice接口
使用SoapCore实现在.net core平台下开发webservice:以及使用HttpClientFactory动态访问webservice. 首先,需要在包项目下面引用SoapCore: 然后 ...
- JMeter3.0及JMeter5.1开发WebService接口脚本(soap取样器 & http取样器)
由于5.1没有soap取样器了,所以用3.0演示. WebService接口信息 WebService接口地址:http://www.webxml.com.cn/WebServices/Weather ...
- 用soapUI开发webservice接口
1,下载soapUI软件,安装到本地 2,打开soapUI软件 3,创建一个开发好的接口 4,进行接口调用 测试:
- Webservice接口的调用
一.开发webservice接口的方式 1.jdk开发. 2.使用第三方工具开发,如cxf.shiro等等. 我这边介绍jdk方式webservice接口调用. 二.使用jdk调用webservice ...
- webservice接口的开发和调用
一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...
- (二)使用CXF开发WebService服务器端接口
CXF作为java领域主流的WebService实现框架,Java程序员有必要掌握它. CXF主页:http://cxf.apache.org/ 简介:百度百科 今天的话,主要是用CXF来开发下Web ...
- 基于Axis1.4的webservice接口开发(接口调用)
基于Axis1.4的webservice接口开发(接口调用) 一.webservice接口代码参考上一篇博客: http://www.cnblogs.com/zhukunqiang/p/7125668 ...
随机推荐
- ORA-15137: cluster in rolling patch
oracle 12.1.0.2,给diskgroup加盘的时候报错ORA-15137: cluster in rolling patch 确认两节点补丁相同 crsctl query crs soft ...
- ubuntu-14.04安装最新tensorflow记录
1.安装英伟达驱动./NVIDIA-Linux-x86_64-384.69.runnvidia-smi成功表示驱动ok 2.安装cudadpkg -i cuda-repo-ubuntu1404-8-0 ...
- Python json.dumps 自定义序列化操作
def login_ajax(request): if request.method == "GET": return render(request, 'login_ajax.ht ...
- [Battle]Battle章1 Presto VS Impala
Round One: 平局:共同点就是吃内存; Round Two: Impala胜 Impala查询性能稍领先于presto Round Three: presto胜 presto在数据源支持上非常 ...
- RT-thread-------------------信号量
信号量:用于解决线程间同步问题的内核对象,线程可以获取或释放它,从而达到同步或互斥的目的.(互斥量只能由持有线程释放,而信号量则可以由任何线程释放) 在rtt中,信号量分为计数型信号量和二值信号量(作 ...
- 二、PyQt5基本功能和操作入门
在这里,我将根据自己的学习历程从初级到高级介绍pyqt5.因为是学到哪里就写道哪里,所以内容排版比较随意.有两点问题需要先说明: 1.虽然界面的设计可以借助qt designer进行拖拽创建,并且可以 ...
- Python爬虫学习--用Python结合Selenium实现 明日之子节目直播时为自己喜欢的选手自动点赞拉票!!!
声明:本脚本纯属娱乐,请勿用来非法点赞拉票,任何使用不当造成的后果自行承担. 闲话: 明日之子第二季开始好久了,作者一直再追,特别喜欢里面那个酷酷的小哥-蔡泽明.前两天晋选9大厂牌,采取的是直播的形式 ...
- Lambda表达式按字段名字排序
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- JavaWeb(一)-Servlet中的Config和Context
一.ServletConfig对象 1.1获取一个servletConfig对象 1)通过初始化方法获得一个servletconfig 2)通过继承父类(GenericServlet.)得到一个ser ...
- 《团队-爬取豆瓣top250-开发文档》
项目托管平台地址:https://github.com/gengwenhao/GetTop250.git 本项目能够爬取豆瓣电影TOP250并向用户展示电影的排名,分数等