zoukankan      html  css  js  c++  java
  • webservice介绍和入门

          webservice是基于http协议和xml语法的一种网络接口服务,由于历史原因,在很多政府和科研领域应用较多。当然,由于json数据格式的兴起,webservice技术逐渐开始淘汰。 webservice和微服务、restful api一样,都是应用层协议的一种实践。主要的关键词有:

    • XML. Extensible Markup Language -扩展性标记语言

    XML,用于传输格式化的数据,是Web服务的基础。
    namespace-命名空间。
    xmlns=“http://itcast.cn” 使用默认命名空间。
    xmlns:itcast=“http://itcast.cn”使用指定名称的命名空间。

    • WSDL – WebService Description Language – Web服务描述语言。

    通过XML形式说明服务在什么地方-地址。
    通过XML形式说明服务提供什么样的方法 – 如何调用。

    • SOAP-Simple Object Access Protocol(简单对象访问协议)

    SOAP作为一个基于XML语言的协议用于有网上传输数据。
    SOAP = 在HTTP的基础上+XML数据。
    SOAP是基于HTTP的。
    SOAP的组成如下:
    Envelope – 必须的部分。以XML的根元素出现。
    Headers – 可选的。
    Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

    在java中,我们可以使用wsimport命令根据WSDL文件所描述的服务结构,生成java代理类,这样我们就可以像调用java本地方法一样去调用webservice:

    • 代理类的构建:

    wsimport -s . url 将服务根据WSDL生成java代理,然后可以直接像sdk的方式调用webserivce

    • 用java代理调用:

    MobileCodeWS mobileCodeWS = new MobileCodeWS();
    MobileCodeWSSoap mobileCodeWSSoap = mobileCodeWS.getMobileCodeWSSoap();
    String aaa = mobileCodeWSSoap.getMobileCodeInfo("18865930895",null);

    在java中,常用的webservice框架主要有AXIS2和CXF,区别如下:

    9102年了,我们一般使用springboot来构建webservice服务,如果是搭配cxf框架,最好使用cxf的starter,如果不使用starter,会出现兼容性的问题,比如报错:

    java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cxf.bus.spring.BusApplicationListener' defined in class path resource [META-INF/cxf/cxf.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.context.support.AbstractApplicationContext.addApplicationListener(Lorg/springframework/context/ApplicationListener;)

    springboot+cxf的版本兼容性如下:
    parent版本是1.4.5,同时jaxws版本是3.1.7时;
    parent版本是1.4.5,同时jaxws版本是3.1.11时;
    parent版本是1.5.6,同时jaxws版本是3.1.11时;
    parent版本是1.5.8,同时jaxws版本是3.1.12时;
    parent版本是1.5.9,同时jaxws版本是3.1.11时;
    parent版本是1.5.9,同时jaxws版本是3.1.12时;
    parent版本是2.0.3,同时jaxws版本是3.2.6时;

  • 相关阅读:
    解析“0”的读法
    CM3 支持 64 位整数, LDRD STRD
    segger usbh struct
    BCM2046 Bluetooth on new 8,3 MacBook Pro USB Interface Descriptor bAlternateSetting
    STM32 USB Host Library 学习笔记 (2) USBH_InterruptSendData() USBH_ClrFeature()
    Double Link List
    汉语拼音方案里的O(哦)和 UO(窝)
    git commit 时,会打开默认的文本编辑器,要求你输入提交信息
    WIN7 常见问题及解决方法
    git 创建 .gitignore 文件 建立项目过滤规则
  • 原文地址:https://www.cnblogs.com/malcolmfeng/p/11328037.html
Copyright © 2011-2022 走看看