项目需求: 使用WebService 调用接口获取数据,实现同步功能

项目分析可行性: 非常顺利的可行性;

技术分析:

WebService

webService主要用于向其他系统提供接口以便调用,系统间可能开发语言等完全不同,根据约定的接口规范,调用者传递相关参数进行接口调用,服务方根据传入的条件进行业务处理并进行结果返回
Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

关于WebService最实用的链接url



项目实现具体思路:

简要说明:

暂且以A代表一个平台,以B代表一个平台;

思路:

A 平台 A1Servce,A2Service,A3Service接口中分别创建 1个方法;
将A1Servce,A2Service,A3Service 添加到WebService的配置文件(spring-webService.sml)中;

B 平台 首先配置与A平台一致的model,dao,daoImpl,service,serviceImpl;
分别在B1Servce,B2Service,B3Service接口中分别创建 1个方法,类似于A平台,在这3个接口的方法中,我们使用B平台配置好的WebService对象调用其方法实现从A平台调用的目的;

以上思路的还缺少一个非常重要的核心: 它就是 WebService 的配置问题,一下结合本项目简单介绍;

第一步:config.properties 配置文件

配置A平台的部分路径,比如https://localhostA:8443/A/services/webService

第二步: 以B平台 B1Service为例,首先获取数据WebService对象

List<Object> providers = new ArrayList<Object>();
providers.add(new JacksonJsonProvider());
WebClient xxxxxx = WebClient.create(xxxxxxA, providers).type(MediaType.APPLICATION_JSON_TYPE).accept(MediaType.APPLICATION_JSON_TYPE);

细节点: xxxxxxxxA 代表上述引入的地址,也就是A平台的部分路径;

第三步: 使用WebService对象调用 接口

WebService对象.type(MediaType.APPLICATION_JSON_TYPE).path("xxxxx").query(xxxxx).get(new GenericType<List<xxxxxxxx>>() {});

第四步: 返回数据;

项目实现具体思路:

终端 用户查看后,点击同步功能;
B平台先从A平台调用接口,获取返回的数据;
如果查询到数据,不为空,(理论上 绝对会有数据返回来,这个主要是针对于本项目);
先删除掉当前B2,B3的数据;
再进行数据的添加;

细节点: 删除非常简单;

添加涉及到级联,级联涉及到model,层层跟进,层层解决,其中涉及到hibernate iterator() 方法的使用,所以以后会着重介绍hiberante相关的知识;


总结一点:

WebService 使用还是比较简单,注意其配置,还有结合项目相关路径的设置;

重点是在业务逻辑,先弄清楚业务需求,在理顺思路,然后开始动手敲代码.


希望大家都能够,分享,沟通,共勉!!!!!!!!!!!!!!!!!!!!