Web Service学习笔记(一)

本文详细介绍了WebService的工作流程,包括客户端与服务器之间的交互步骤。同时深入探讨了WebService的技术基础,涵盖WSDL的结构与用途,以及SOAP消息的构成与处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Web Service调用过程
1.客户端把需要调用的参数,转换为XML文档片段(SOAP消息)
2.客户端通过网络把XML文档片段传给服务器
3.服务器端接受XML文档片段
4.服务器解析XML文档片段,提取其中的数据,并把数据转为调用所需要的参数
5.服务器执行方法
6.得到方法的返回值,服务器把方法的返回值,转为XML文档片段(SAOP消息)
7.服务器通过网络把XML文档片段传给客户端
8.客户端接受XML文档片段
9.客户端解析XML文档片段,提取其中的数据,并把数据转为调用返回值。
 
Web Service技术基础
1.WSDL
  Web Service接口
    (a) types
    (b) 2N个message
    (c) portType     -- N个operation
  Web Service实现
    (a) binding元素  -- N个更详细的opertion
    (b) service      -- 服务器地址


2.SOAP
 根元素:Envelope
 
 header元素:
   Header元素不是强制出现的,是可以有程序员控制添加的信息。主要用于携带一些额外的信息,如验证信息。
 
 body元素:
 (a).如果调用正确,body元素,这是WSDL的规范格式
 (b).如果调用失败,这显示Fault元素
※SOAP的格式可以理解为与HTML格式比较类似。
 
 
服务器端添加拦截器(CXF框架):
1.获取Endpoing的publish方法的返回值(org.apache.cxf.jaxws.EndpoingImpl)。
2.调用该方法的返回值的getInInterceptor, getOutInterceptor方法来获取In,Out拦截器列表。
※自定义的拦截器需要实现Interceptor接口,实际上一般会继承AbstractPhaseInterceptor类。
 
客户端添加拦截器(CXF框架):
1.调用ClientProxy.getClient()的方法,该方法以远程Web Service问参数。返回值为Client对象。
2.client.getInInterceptors().add(),参数为拦截器对象。
3.client.getOutInterceptors().add(),参数为拦截器对象。
 
自定义拦截器:
1.继承AbstractPhaseInterceptor<SaopMessage>
  ※通过PhaseInterceptor可以指定拦截器在哪个阶段起作用。
2.实现方法handleMessage(SoapMessage msg)
  ※参数SoapMessage msg是SOAP消息对象。获取了SOAP消息,就可以对消息进行解析,修改。
3.实现无参数的构造器,显示调用父类的有参构造器,通过参数指定拦截器作用的阶段
  ※起作用的阶段字符串的定义在类Phase中。
  























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值