cxfservlet_webService框架CXF的简单使用

废话不多说,本周的技术要点如下:

一、webService原理

webService的有关知识网上太多了,但是我没有看懂,webService有关的三个要素:SOAP、UDDI 、WSDL ,我只知道了WSDL的使用方法。我所理解的webService如下:

首先,webService是为了解决什么问题呢?因为我们知道系统中前端可以使用REST接口对后台进行数据请求,但是这是程序内部的数据接口,不可能直接发布给外部让别人使用url请求的,系统都会对这些开发的接口进行拦截和身份校验。那么如果我们想在外界获取到某个系统的数据,就需要webService了。比如天气信息网站的天气信息等公开分享的信息,我们都可以使用webService技术来获取。

接下来webService是什么原理呢?我们都知道使用java进行接口开发的时候,参数和返回的结果一般会使用到实体类,比如有这样的一个接口,是通过用户的名字获取数据,那么此时的controller的方法可能会是这样写:

@RequestMapping(value = {"/list","/checkList"})

public ResponseResult getUser(User u){

ResponseResult re = this.createResult(u);

return re;

}

接口中参数User为用户的实体类,前台传过来的用户名传到后台会自动封装成User对象。后台接口查询到数据后,会将数据封装成ResponseResule对象,传递给前台。这样前台就可以根据传递过来的信息展现数据了。

通常开发的数据接口是前台和后台进行交互,之所以前台可以很方便的和后台进行交互,是因为前台对于参数对象和结果对象是使用JSON进行转换了,任你后台是什么实体类,在我前台面前一律全是JSON对象。

但是对于webService的话,并不是前台和后台进行交互,而是后台和后台进行交互。比如系统A的后台语言是java,系统B的后台语言也是java,那么当系统B使用接口对系统A发起请求的时候,也是需要将一个实体对象作为参数传递过去,将一个实体对象作为查询结果进行返回。但是系统B怎么可能知道系统A的这个接口的参数实体对象和结果实体对象的构成呢?而如何让系统B知道接口中这两个对象的构成就成为了webService的重点。

那么webService是怎么实现将系统A的接口的构成告诉给系统B的呢?

首先webService需要一个服务端和客户端,很显然,系统A就是服务端,系统B就是客户端了。另外这个服务端需要新开一个servlet,以专供进行服务接口的请求。此时系统A会通过webService的服务端发布一个接口,这个接口和程序开发的接口不同之处在于:

1、这个接口可以在外部访问,如果这个接口可以对外部共享的话,那么任何人都可以对这个接口进行访问;

3、返回的是正常人看不懂的XML文档。

这样系统B在对服务接口进行请求后会获得一个xml文档,这个文档包含了想要请求到数据的前期一切信息。我们可以通过这个文档构建系统A的接口环境,重建参数对象和结果对象,构成一个客户端。这样当我们在对系统A进行数据请求的时候(此时的数据接口不是前面的获得wsdl的地址,可能放在xml文档中)就可以通过对象进行数据传输了。

那么问题来了,怎么通过wsdl的这个xml文档重建接口环境,生成一个webService的客户端呢?

其实这个方法有很多种,可以网上去查,我使用的方法是使用编辑器的内置的方法,idea和eclipse应该都有(后

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值