WebService学习笔记

WebService解决的问题

  • 不同语言之间、不同系统、不同平台之间的通讯访问和调用。
  • 应用程序的集成,不同业务的整合。

WebService的主流框架

webService只是一个天上飞的概念,落地实现的框架类产品有:

  • Axis1、Axis1
  • XFire
  • cxf(用得多)

SOP协议

  • 基于xml的简易协议,用于http上的信息交换。
  • 一次webService的调用,不是方法的调用而是soap消息(xml个格式规范的文档片段)之间的输入输出
    例如请求响应如下:
    请求|响应请求消息:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="http://test.cxf.it.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <test:sayHello>
         <arg0>11</arg0>
         <!--Optional:-->
         <arg1>lzp</arg1>
      </test:sayHello>
   </soapenv:Body>
</soapenv:Envelope>

响应消息:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:sayHelloResponse xmlns:ns2="http://test.cxf.it.com/">
         <return>cxf 1022 hello:lzp	11</return>
      </ns2:sayHelloResponse>
   </soap:Body>
</soap:Envelope>

客户端通过soap访问Service过程

1.客户端到UDDI上寻找Service目录
2.客户端获得WSDL文件
3.客户端按照WDSL文件的约束和规范创建SOAP客户端请求消息
4.客户端通过SOAP访问Service

wsdl报文

  • wsdl:definitions
<wsdl:definitions 
		xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
		xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
		xmlns:tns="http://test.cxf.it.com/" 
		xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
		xmlns:ns1="http://schemas.xmlsoap.org/soap/http" 
		name="HelloWorldServiceImplService" 
		targetNamespace="http://test.cxf.it.com/">
</wsdl:definitions>
keyvalue
xmlns:tns相当于java里面import包名的反转
namejava中的服务接口实现类+Service后缀
targetNamespace命名空间和java的package包名相反
其他无需关心,w3c协议的基本内容
  • wsdl:types
    通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。
  • wsdl:portType
    portType = 接口 operation = 接口中定义的方法
  • wsdl:service
    负责将网络通信地址赋给一个具体的绑定

JAXB

  • JAXB是Java Architecture for XML Binding的缩写。可以将一个Java对象转变成为XML格式,反之亦然。

JAX-WS

  • JAX-WS可以完成wsdl到java的转换,即wsdl或合同优先,可以简单理解为根据wsdl生成java客户端代码的工具。

JAX-RS

  • JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。已经不是wsdl协议了不要和上面内容混淆
  • 写成JAX-RS后调用接口方式JAX-WS生成代码了,要用httpclient正常的接口请求调用。
    参考材料
    视频
    https://www.bilibili.com/video/BV1xE411d7hY/?p=7&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=d4d473abbc7c6449c2f6a13e3f16728e
    博客
    https://www.cnblogs.com/mangoubiubiu/p/14839248.html
    实验证代码
    https://gitee.com/peterLiz/web-service.git
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值