Java基础

Webservice理解及常见面试题解析

2019-06-17  本文已影响2人  莫问以

1、什么是WebService?或者说webservice能给我们解决什么样的问题?
一句话概括:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
比如银行端接口基本都是C语言编写,或者财政提供了接口,而银行想要远程调用,假若后端采用Java语言,那么如果想要调用这些接口,WebService就是很好的调用技术之一!

WebService示意.jpg

2、WebService的核心是什么?
这个问题以前面试的时候遇到过,今天想起来不免有些好笑!当时我真的有些蒙圈,核心?
究竟是指SOAP还是指WSDL?当时直接就说了核心是SOAP协议,其实WebService核心可以归纳为这四个概念:
A.soap:简单对象访问协议,它是轻型协议,用于分散的、分布式计算环境中交换信息。SOAP有助于以独立于平台的方式访问对象、服务和服务器。它借助于XML,提供了HTTP所需的扩展,即http+xml。

B.XML+XSD:WebService平台中表示数据的格式是XML,XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型,而XSD就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。

C.wsdl:基于XML用于描述Web Service及其函数、参数和返回值的文件。
WebService服务器端通过一个WSDL文件来说明自己对外提供啥服务,该服务包括什么方法、参数、返回值等等。WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。
客户端要调用一个WebService服务之前,首先要知道该服务的WSDL文件的地址。

WebService服务的WSDL文件地址可以通过两种方式来暴露:
1.注册到UDDI服务器,以便被人查找;
2.直接告诉给客户端调用者。

D.uddi:它是目录服务,通过该服务可以注册和发布webservcie,以便第三方的调用者统一调用。

3、Webservice的SEI指什么?
WebService服务器端用来处理请求的接口[WebService EndPoint Interface]

4、如何发布一个webservice?
A.定义SEI(接口) @webservice(类) @webMethod(暴露的方法)
B.定义SEI的实现
C.发布Endpoint.publish(url,new SEI的实现对象)

5、如何请求一个webservice?
A.根据wsdl文档生成客户端代码
jdk wsimport -keep wsdl路径
cxf wsdl2java wsdl路径

B.根据生成的代码调用webservice
找到wsdl文档中service标签的name属性对应的类,找到这个port标签的name属性,调用该方法即可

6、WebService常用开发框架
Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF、Apache Wink、Jboss RESTEasy、sun JAX-WS(最简单、方便)、阿里巴巴 Dubbo等。

Java新建一个简单WebService项目可以参考:
https://blog.csdn.net/weixin_39309402/article/details/78955725

上一篇下一篇

猜你喜欢

热点阅读