20180923-WebService

什么是webservice?
    什么是远程调用技术?答:系统和系统之间的调用,从远程系统当中获取业务数据。
    Webservice是web服务,他是用http传输SOAP协议数据的一种远程调用技术。

Webservice的入门程序
    服务端
        第一步:创建SEI接口
        第二步:创建SEI实现类,要在类上加入注解:@WebService,作用是标识这个类是服务类,要发布里面的public方法。
        第三步:发布服务,Endpoint的publish方法,有2两个参数:1.服务地址  2.实现类实例
        第四步:测试服务是否发布成功,通过阅读使用说明书,确定服务接口、方法、参数和返回值存在,说明服务发布成功。
            WSDL地址:服务地址+”?wsdl”,比如:http://127.0.0.1:54321/weather?wsdl
            WSDL阅读方式,从下往上,service --> binding --> portType --> 其中有接口、方法、参数和返回值
    客户端
        第一步:使用wsimport命令生成客户端代码
        第二步:根据使用说明书,使用客户端调用服务端
            创建服务视图,视图是从service的name属性获取
            获取服务实现类,从portType的name属性获取
            调用查询方法,从portType下的operation标签的name属性获取

Webservice的优缺点:
    优点:发送方式采用http的post,http默认端口是80,所以跨防火墙。
          数据封装使用XML格式,XML是跨平台,所以webservice可以跨平台。
          Webservice支持面向对象开发。
    缺点:使用XML封装数据,需要额外传输其他标签,性能较差。

Webservice的应用场景
宏观
    软件集成和复用
微观
    适用场景:
        发布服务(对内/对外),不考虑性能,不考虑客户端类型,建议使用webservice
        服务端已经确定webservice,客户端只能使用webservice
    不适用场景:
        考虑性能时,不建议使用webservice
        同构程序下,不建议使用webservice,比如:客户端服务端都是java开发,建议使用Java RMI,Java的RMI同样可以实现远程调用,而且性能比webservice好很多。

Webservice的三要素
    WSDL:
        定义:web服务描述语言,它是webservice服务端的使用说明书,它说明服务、接口、方法、参数和返回值,它是伴随服务发布成功,而自动生成的,无需编写。
        文档结构:
            service
            binding
            portType
            message
            types
        阅读方式:从下往上
    SOAP:
        定义:SOAP即简单对象访问协议,它是使用http传输XML格式的数据,跨平台,跨防火墙,它不是webservice专有协议。
        Soap = http + xml
        协议的格式:
            必须项:envelope和body
            非必须项有:header和fault
    SOAP1.1和1.2区别
        相同点:
            都使用http的POST发送请求
            协议格式都相同:都有envelope和body标签
        不同点:
            Content-type不同:
                SOAP1.1:text/xml; charset=utf-8;
                SOAP1.2:application/soap+xml; charset=utf-8
            命名空间不同:
                SOAP1.1:http://schemas.xmlsoap.org/soap/envelope/
                SOAP1.2:http://www.w3.org/2003/05/soap-envelope

Webservice的四种客户端调用方式
    生成客户端的调用方式
    Service编程的调用方式
    HttpURLConnecton调用方式
    Ajax调用方式

深入开发:用注解修改WSDL内容
    @Webservice
    @WebMethod
    @WebParam
    @WebResult
修改完WSDL之后,需要重新生成客户端代码。

详细案例:https://www.cnblogs.com/chenmingjun/p/9692658.html

猜你喜欢

转载自www.cnblogs.com/yyxq/p/9693297.html