WebService 面试题及详细答案(实战版)_第1页
WebService 面试题及详细答案(实战版)_第2页
WebService 面试题及详细答案(实战版)_第3页
WebService 面试题及详细答案(实战版)_第4页
WebService 面试题及详细答案(实战版)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WebService面试题及详细答案(实战版)一、基础概念类1、什么是WebService?核心作用是什么?参考答案:WebService是一种跨平台、跨语言的远程调用技术,本质是部署在服务端的一组可调用接口,通过网络实现不同系统之间的数据交互和功能调用。它的核心作用是解决异构系统对接问题,比如Java、.NET、PHP等不同语言开发的项目,不同服务器、不同架构的系统,无需适配底层代码,就能标准化完成数据通信,常用来做第三方接口对接、系统集成、跨系统数据同步等场景。2、WebService的三大核心技术是什么?各自作用?参考答案:三大核心技术为WSDL、SOAP、UDDI,日常开发中重点使用前两者:(1)WSDL(Web服务描述语言)是XML格式的服务描述文档,相当于WebService的接口说明书。里面定义了服务地址、接口名称、请求参数、返回参数、请求方式、数据格式等所有接口信息。客户端可以通过WSDL文件自动生成调用代码,无需手动对接参数。(2)SOAP(简单对象访问协议)是WebService的数据传输协议,基于HTTP/HTTPS传输XML格式数据,规定了客户端和服务端通信的报文格式、请求响应规范,保证数据传输的规范性和可靠性。(3)UDDI(统一描述、发现和集成协议)相当于WebService的服务注册中心,用于统一注册、查询、发现公开的Web服务。目前企业开发中基本很少使用,大多是项目内部私有服务对接。3、WebService基于什么协议传输?和普通HTTP接口有什么区别?参考答案:WebService默认基于HTTP/HTTPS协议传输,但和普通HTTP接口(REST接口)有明显区别:1、数据格式不同:WebService固定传输XML格式报文;普通HTTP接口多使用JSON格式,部分用表单格式。2、协议规范不同:WebService遵循SOAP协议,报文有固定的头部、主体格式,结构严谨;普通HTTP接口无强制报文规范,格式更灵活。3、跨语言适配性不同:WebService标准化程度极高,几乎所有开发语言都有成熟的适配工具,异构系统对接兼容性更强;REST接口虽然通用,但不同语言对接时需要手动适配参数格式。4、性能不同:WebService报文冗余量大、解析繁琐,传输和解析速度慢;普通JSONHTTP接口轻量化、解析快,性能更高。二、原理与报文类4、简单说一下SOAP报文的结构?参考答案:SOAP报文是标准化的XML结构,主要分为三部分:1、Envelope(信封)是整个报文的根标签,所有报文内容都包裹在信封中,是SOAP报文的标识,必须存在。2、Header(头部,可选)用于存放附加信息,比如身份认证、令牌、加密信息、超时时间等自定义参数,非必选标签,业务简单的接口可以省略。3、Body(主体,必选)报文核心内容,存放具体的请求参数、接口调用方法、返回结果。所有业务数据都在Body中,是必须存在的标签。另外,异常场景下会包含Fault标签,用于返回接口调用的错误信息、错误码、错误描述。5、WSDL文件中常见的标签及含义?参考答案:日常开发中最常用的核心标签:1、types:定义接口所有的数据类型、参数结构,相当于数据模型定义。2、message:定义请求报文和响应报文的参数集合,对应入参、出参。3、portType:核心接口定义,包含所有可调用的接口方法、对应的请求和响应报文。4、binding:绑定协议和数据格式,指定当前接口使用SOAP协议、HTTP传输方式。5、service:定义服务名称和真实的访问地址(URL),是客户端最终调用的地址。6、SOAP1.1和SOAP1.2的主要区别?参考答案:1、协议前缀不同:1.1版本命名空间前缀为soap,1.2版本为soapenv,命名空间地址不同。2、传输绑定不同:SOAP1.1基于HTTP的POST方式,绑定规范简单;SOAP1.2标准化了HTTP绑定规则,支持更多传输协议,不止局限于HTTP。3、报文格式更严谨:1.2版本强制规范了报文结构、错误返回格式,兼容性和稳定性更好。4、扩展性更强:1.2版本对头部扩展、权限校验、数据加密的支持更完善,企业级对接优先使用1.2版本。三、实操开发与调用类7、Java中常用的WebService开发和调用框架有哪些?参考答案:服务端开发框架:1、JAX-WS:Java原生标准框架,无需引入额外依赖,适合简单接口开发,轻量便捷。2、CXF:主流企业级框架,功能全面,支持拦截器、权限校验、报文加密、日志打印,适配复杂业务场景。3、Axis2:老牌框架,兼容性极强,适配老旧系统对接,目前新项目使用较少。客户端调用方式:1、根据WSDL地址自动生成客户端代码(wsimport、cxf-codegen-plugin插件);2、手动拼接SOAPXML报文,通过HTTP工具类调用;3、使用CXF、Axis工具类直接发起调用。8、wsimport命令的作用和常用参数?参考答案:wsimport是JDK自带的WebService客户端代码生成工具,核心作用是通过线上WSDL地址或本地WSDL文件,自动生成接口调用的Java实体类、接口类,无需手动写对接代码。常用参数:-s:指定源码生成路径;-p:指定生成代码的包路径;-keep:保留生成的java源码文件,不删除;-verbose:打印详细生成日志,方便排查问题。9、WebService调用常见报错及解决方案?参考答案:(1)Namespace命名空间不匹配原因:客户端请求报文的命名空间和服务端定义不一致,是最常见问题。解决:严格对照WSDL文件的命名空间,统一报文头部和参数的namespace,或重新生成客户端代码。(2)SOAP报文格式错误原因:手动拼接XML时报文标签缺失、大小写错误、标签不闭合。解决:规范XML格式,优先使用工具生成代码调用,减少手动拼接。(3)服务地址无法访问、超时原因:服务器端口不通、网络限制、服务未启动、请求超时时间过短。解决:检查网络和服务状态,调整超时时间,放开防火墙端口限制。(4)参数不匹配、类型转换异常原因:入参字段缺失、参数类型和服务端定义不符(数字传字符串、空值格式错误)。解决:对照WSDL的types定义,严格匹配参数名称、类型、是否必填。10、如何给WebService接口添加身份认证?参考答案:企业开发中常用三种认证方式:1、SOAPHeader认证:在SOAP报文的Header中携带账号密码、Token令牌,服务端通过拦截器解析Header信息,校验通过后放行请求,是最主流方式。2、HTTP基础认证:基于HTTPBasicAuth,请求头携带用户名密码,适合内网简单对接场景。3、WS-Security安全协议:专业的WebService安全规范,支持报文加密、签名、防篡改、防重放,适合金融、政务等高安全级别场景。四、优缺点与场景对比11、WebService的优缺点?参考答案:优点:1、跨平台、跨语言兼容性极强,异构系统对接首选;2、标准化程度高,有统一的报文、协议、文档规范,对接成本低、稳定性高;3、支持安全认证、报文加密、事务控制,适合企业级正式项目;4、接口文档(WSDL)自动生成,无需手动维护接口文档。缺点:1、传输XML报文,数据冗余量大,传输效率低、速度慢;2、报文解析复杂,相比JSON接口性能损耗更大;3、开发配置繁琐,框架依赖较重,轻量化场景不适用;4、移动端、前端开发基本不使用,适配性差。12、WebService和RESTful接口的适用场景区别?参考答案:WebService适用场景:1、老旧系统对接、异构系统(Java/.NET/PHP)跨语言集成;2、政务、银行、国企等传统企业项目,要求高标准化、高稳定性接口;3、第三方老旧服务商对接(很多传统第三方接口只提供WebService)。RESTful接口适用场景:1、前后端分离项目、移动端、小程序、互联网项目;2、高并发、高响应要求的业务场景,追求接口性能和简洁性;3、新项目快速开发、轻量化接口交互。五、进阶面试题13、什么是WS-Security?作用是什么?参考答案:WS-Security是WebService的安全扩展规范,专门用于解决接口通信的安全问题,是企业级高安全接口的标配规范。核心作用:支持报文内容加密、报文签名校验、防止数据篡改、防止请求重放攻击、身份凭证校验,保障接口传输数据的安全性和完整性,广泛应用在金融、医保、政务等涉密、敏感数据对接场景。14、WebService接口如何实现超时控制?参考答案:主要从客户端配置超时时间,分为两种:1、连接超时:设置客户端和服务端建立网络连接的最大等待时间,超时则直接终止连接,避免连接阻塞;2、读取超时:连接成功后,设置读取服务端响应数据的最大时间,服务端处理过慢、无响应时自动超时,防止线程卡死。CXF、Axis框架均可通过配置参数或代码手动设置超时时间,适配不同业务的响应时效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论