WebService概念
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
Web Services 可以将应用程序转换为网络应用程序,即可以向别人提供某项功能。
基础的 Web Services 平台是 XML + HTTP。WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的 返回结果是什么)。
HTTP 协议是最常用的因特网协议。
XML 提供了一种可用于不同的平台和编程语言之间的语言。
XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。
SOAP协议(简单对象访问协议)= HTTP协议 + XML数据格式
WSDL
(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。XSD是指XML结构定义 ( XML Schemas Definition )
XML Schema
是DTD的替代品。XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。
WebService实操
WebService发布
1、使用jdk发布WebService。如图:
上图是接口。
上图是实现类。
上图是发布类。直接将此类运行,让其挂着即可。
2、使用servlet发布WebService。
新建一个servlet文件,如图
第一行是servlet初始化配置参数,可以在这里配置,也可以去web.xml文件中配置。其中loadOnStart属性配置0或者大于0的数字,否则web服务器初始化的时候,不会创建该servlet的实例。创建好了servlet就去web.xml文件中把servlet注册好,如图:
接口类和之前的一样,实现类要新加一个注解,如图:
这个注解我也不知道什么意思,但是不加就会报一个很恶心的错误。之后将项目部署运行即可。
3、使用监听器发布WebService。
之前两种方法发布了webservice后,代码也不用修改,直接创建一个监听器,如图:
然后将Web应用部署到服务器运行时,在初始化Web应用上下文时,就会发布WebService了。
出现的错误
错误说某某方法找不到,
网上查了很久(有高手指点就是一句话的事),又是说jdk版本需要升级到6以上,又是说需要什么什么jar的支持,全是扯淡。我自己发现就是接口的实现了少了注解,如图
WebService客户端开发
webservice已经发布好了,那么就要让别人远程调用。首先我们要
获取WebService地址,如图:
这里需要说一下,我此时的开发环境是:myecplise2017,jdk8。额,除此之外,别的东西都不需要了,我只能说现在的开发工具真的是很方便,当初我做实习生的时候还要用到cxf框架什么的,麻烦死了,感觉也意思不大。
根据WebService地址生成客户端,如图:
new>other>Webservice
上图是创建一个WebService项目,图中可以看到两个WebService,但是要注意是这一个。
填好了就点击next。
图中的选项记得要勾,否则关于WebService的调用的相关文件不会生成,创建好了客户端也会是空的。然后点finish。
如图中有个---Proxy类,调它就能使用WebService里的接口。使用结果如图:
当然,在实际开发中,我们会将生成的客户端打成一个java jar包,然后让另一个系统导入使用,这里要注意的是,要将客户端的相关jar包也要拷过去。最后再多一句嘴,我们还可以使用第三方的免费的WebService服务,来获取天气信息之类的,至于操作方式,也和前面介绍的一样。
一点感想:不管学什么东西都有一个由浅入深的过程,初学之时,只为快速用上手,所以不求甚解,只有先玩上手了,我们才能继续挖深,若是用都不会用,那就是根本就卡在门外,说什么理论云云,都是扯淡。