webservice CXF 相关面试题

Web Service的优势
(1) 可让异构的程序相互访问(跨平台)
(2) 松耦合
(3) 基于标准协议(通用语言,容许其余程序访问)

html

 

 

1:WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。 
   Web ServiceWeb Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵照具体的技术规范,这些规范使得Web Service能与其余兼容的组件进行互操做。
 JAXP(Java API for XML Parsing) 定义了在Java中使用DOM, SAX, XSLT的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你须要改变具体的实现时候也不须要修改代码。
 JAXM(Java API for XML Messaging) 是为SOAP通讯提供访问方法和传输机制的API。
 WSDL 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操做。这种格式首先对操做和消息进行抽象描述,而后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。
 SOAP即简单对象访问协议(Simple Object Access Protocol), 它是用于交换XML编码信息的轻量级协议。 
 UDDI 的目的是为电子商务创建标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业可以发现的访问协议的实现标准。

什么是webservice(用你的话描述webservice)?在何时用webservice(webservice能给咱们解决什么样的问题)?程序员

一句话归纳:WebService是一种跨编程语言和跨操做系统平台的远程调用技术。web

所谓跨编程语言和跨操做平台,就是说服务端程序采用Java编写87 ,客户端程序则能够采用其余编程语言编写,反之亦然!跨操做系统平台则是指服务端程序和客户端程序能够在不一样的操做系统上运行。算法

所谓远程调用,就是一台计算机a上的一个程序能够调用到另一台计算机b上的一个对象的方法。譬如从天气预报系统中获取某个城市的天气数据在本身系统中进行展现;从证券交易系统中获取某只股票的交易信息在本身的系统中进行展现;又譬如一个商城系统中可以展现快递的跟踪信息,而这些信息就是经过webservice从具体的快递公司的系统中获取的数据。spring

其实能够从多个角度来理解WebService,从表面上看,WebService就是一个应用程序向外界暴露出一个能经过Web进行调用的API,也就是说能用编程的方法经过Web来调用这个应用程序。咱们把调用这个WebService的应用程序叫作客户端,而把提供这个WebService的应用程序叫作服务端。从深层次看,WebService是创建可互操做的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操做性,你能够用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要咱们能够经过Web service标准对这些服务进行查询和访问。数据库

二.WSDL是什么,有什么做用?编程

WSDL是web service definition language的缩写,即web service的定义(描述)语言。设计模式

怎样向别人介绍你的 web service 有什么功能,以及每一个函数调用时的参数呢?你可能会本身写一套文档,你甚至可能会口头上告诉须要使用你的web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的web service的时候,他们的工具(如Visual Studio)没法给他们提供任何帮助,由于这些工具根本就不了解你的web service。解决方法是用机器能阅读的方式提供一个正式的描述文档。web service描述语言(WSDL)就是这样一个基于XML的语言用于描述web service及其函数、参数和返回值。由于是基于XML的,因此WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的web service生成WSDL文档,又能导入WSDL文档,生成调用相应web service的代码。浏览器

Webservice服务发布以后,经过浏览器访问发布的+?wsdl便可得到wsdl文档缓存

三.WSDL文档主要有那几部分组成,分别有什么做用?

一个WSDL文档的根元素是definitions元素,WSDL文档包含7个重要的元素:types, import, message, portType, operations, binding和service元素。

一、 definitions元素中通常包括若干个XML命名空间

二、 Types元素用做一个容器,定义了自定义的特殊数据类型,在声明消息部分(有效负载)的时候,messages定义使用了types元素中定义的数据类型与元素;

三、 Import元素可让当前的文档使用其余WSDL文档中指定命名空间中的定义;

四、 Message元素描述了Web服务的有效负载。至关于函数调用中的参数和返回值;

五、 PortType元素定义了Web服务的抽象接口,它能够由一个或者多个operation元素,每一个operation元素定义了一个RPC样式或者文档样式的Web服务方法;

六、 Operation元素要用一个或者多个messages消息来定义它的输入、输出以及错误;

七、 Binding元素将一个抽象的portType映射到一组具体的协议(SOAP或者HTTP)、消息传递样式(RPC或者document)以及编码样式(literal或者SOAP encoding);

八、 Service元素包含一个或者多个Port元素

每个Port元素对应一个不一样的Web服务,port将一个URL赋予一个特定的binding,经过location实现。
可使两个或者多个port元素将不一样的URL赋给相同的binding。

四.SOAP是什么?

  SOAP是simple object access protocal的缩写,即简单对象访问协议。 是基于XML和HTTP的一种通讯协议。是webservice所使用的一种传输协议,webservice之因此可以作到跨语言和跨平台,主要是由于XML和HTTP都是独立于语言和平台的Soap的消息分为请求消息和响应消息,一条SOAP消息就是一个普通的XML文档,包含下列元素:

一、 必需的 Envelope 元素,可把此XML文档标识为一条SOAP消息

二、 可选的 Header 元素,包含头部信息

三、 必需的 Body 元素,包含全部的调用和响应信息

四、 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

 

Soap请求消息 

Soap响应消息 

 

五.怎么理解UDDI?

UDDI是Universal Description Discovery and Integration的缩写,即统一描述、发现和整合规范。用来注册和查找服务,把web services收集和存储起来,这样当别人访问这些信息的时候就从UDDI中查找,看有没有这个信息存在。

五.Webservice的SEI指什么?

WebService EndPoint Interface(webservice终端[Server端]接口)

就是 WebService服务器端用来处理请求的接口

六.说说你知道的webservice框架,他们都有什么特色?

Webservice经常使用框架有JWS、Axis二、XFire以及CXF

下面分别介绍一个这几种Web Service框架的基本概念

一、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务自己的角度来看JWS服务是没有语言界限的。可是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。
二、Axis2是Apache下的一个重量级WebService框架,准确说它是一个Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制做和发布WebService,并且能够生成Java和其余语言版WebService客户端和服务端代码。这是它的优点所在。可是,这也不可避免的致使了Axis2的复杂性,使用过的开发者都知道,它所依赖的包数量和大小都是很惊人的,打包部署发布都比较麻烦,不能很好的与现有应用整合为一体。可是若是你要开发Java以外别的语言客户端,Axis2提供的丰富工具将是你不二的选择。
三、XFire是一个高性能的WebService框架,在Java6以前,它的知名度甚至超过了Apache的Axis2,XFire的优势是开发方便,与现有的Web整合很好,能够融为一体,而且开发也很方便。可是对Java以外的语言,没有提供相关的代码工具。XFire后来被Apache收购了,缘由是它太优秀了,收购后,随着Java6 JWS的兴起,开源的WebService引擎已经再也不被看好,渐渐的都败落了。
四、CXF是Apache旗下一个重磅的SOA简易框架,它实现了ESB(企业服务总线)。CXF来自于XFire项目,通过改造后造成的,就像目前的Struts2来自WebWork同样。能够看出XFire的命运会和WebWork的命运同样,最终会淡出人们的视线。CXF不可是一个优秀的Web Services / SOAP / WSDL 引擎,也是一个不错的ESB总线,为SOA的实施提供了一种选择方案,固然他不是最好的,它仅仅实现了SOA架构的一部分。
注:对于Axis2与CXF之间的关系,一个是Axis2出现的时间较早,而CXF的追赶速度快。

如何抉择: 
一、若是应用程序须要多语言的支持,Axis2应当是首选了;
二、若是应用程序是遵循 spring哲学路线的话,Apache CXF是一种更好的选择,特别对嵌入式的Web Services来讲;
三、若是应用程序没有新的特性须要的话,就还是用原来项目所用的框架,好比 Axis1,XFire,Celtrix或BEA等等厂家本身的Web Services实现,就别劳民伤财了。

七.你的系统中是否有使用到webservice开发,具体是怎么实现的?

若是你以为本身掌握的不够好,对本身不够自信的能够回答为“个人系统中没有使用到webservice的开发,可是我掌握webservice开发的概念和流程”,而后能够给他讲讲相关的概念,也就是上面的这些问题的回答,这样能够绕过这个问题,由于并非全部的系统都会涉及到webservice的开发。

另外一种回答便是先给他介绍一种webservice开发框架,好比CXF,而后告诉他你作的是服务端开发仍是客户端开发,若是你说你作的事服务端开发,那么你就告诉他怎么定义的webservice,使用了哪些注解,怎么跟spring进行的整合,怎么发布的服务等等;若是你告诉他你作的事客户端的开发,那么你能够告诉他你怎么生成的本地代码,而后又怎么经过本地代码去调用的webservice服务。

 
wsdl(WebService Definition Language)是什么? 1.webservice定义语言,对应.wsdl文档 2.定义了webservice服务器端和客户端应用交互传递请求数据的格式和过程 3.一个webservice对应一个惟一的wsdl文档
  • 1
  • 2
  • 3
  • 4
SOAP(Simple Object Access Protocal)简单对象访问协议 1.是一种简单的,基于HTTP和XML的协议,用于在WEB交换结构化(XML)的数据 2.SOAP消息:请求消息和响应消息 3.HTTP+XML片段
 

Q. 应用集成方式有哪些?

A. 应用能够采用如下方式集成:

1. 共享数据库

2. 批量文件传输

3. 远程过程调用(RPC)

4. 经过消息中间件来交换异步信息(MOM)

 

Q. 应用集成能够采用的Web服务方式有什么?

A. SOAP WS(Simple Object Access Protocal) 和RESTful Web Service(REpresentational State Transfer)

 

Q. SOAP WS 和RESTful Web Service之间有什么不一样呢?

A. 

  • SOAP WS支持既远程过程调用(例如,RPC)又支持消息中间件(MOM)方式进行应用集成。而Restful Web Service仅支持RPC集成方式。
  • SOAP WS是传输协议无关的。它支持多种协议,好比,HTTP(S)、 Messaging、TCP、UDP SMTP等等。而REST是协议相关的,只支持HTTP或者HTTPS协议。
  • SOAP WS仅容许使用XML数据格式。定义的操做经过POST请求发送。其重点是经过操做名来获取服务,并将应用逻辑封装为服务。而REST方式则容许多种数据格式,例如,XML、JSON、文本、HTML等等。并且因为REST方式采用标准GET、PUT、PSOT和DELETE 方法,所以全部的浏览器均可以支持。其重点是经过资源名来获取服务,并将数据封装为服务。AJAX支持REST方式,它可使用XMLHttpRequest对象。无状态CRUD操做(建立、读、更新和删除)更加适合这种方式。

GET – represent()

POST – acceptRepresention()

PUT – storeRepresention()

DELETE – removeRepresention()

  • 没法缓存SOAP方式读取的内容。而REST方式的则能够,并且性能和可扩展性都更好一些。
  • SOAP WS支持SSL和WS-security,针对企业级应用能够有更多的安全保障,例如按需提高安全指数、经过第三方来保证身份认证信息的安全性、除了点到点SSL(point to point SSL)以外,更针对消息的不一样部分来提供不一样的保密算法等等。而REST只支持点到点SSL。并且不管是否是敏感消息,SSL都会加密整条消息。
  • SOAP对于基于ACID的短寿命事务管理以及基于补偿事务管理的长寿命事务有深刻的支持。同时,SOAP也支持分布式事务(译者:在一个分布式环境中涉及到多个资源管理器的事务)的两阶段提交(two-phase commit)方式。而REST因为基于HTTP协议,所以对于事务处理既不兼容ACID方式也不提供分布式事务的两阶段提交方式。
  • 即使是要经过SOAP的第三方程序,SOAP经过内置的重试逻辑也能够提供端到端可靠性。REST没有一个标准的消息系统,于是寄但愿于客户经过重连去解决通讯失败问题。

 

 

 

Q. SOA和Web service的区别是什么?

A. SOA是一种软件设计准则,一种实现松耦合,高可复用性和粗粒度的web服务的设计模式。开发者能够选择任意协议实现SOA,例如,HTTP、HTTPS、JMS、SMTP、RMI、IIOP(例如,采用IIOP的EJB)、RPC等。消息能够采用XML或者数据传输对象(Data Transfer Objects,DTOs)。

Web Service是实现SOA的技术之一。也能够不用Web service来实现SOA应用:例如,用一些传统的技术,像Java RMI,EJB,JMS消息等。可是Web service提供的是标准的平台无关的服务,这些服务采用HTTP、XML、SOAP、WSDL和UDDI技术,所以能够带来J2EE和.NET这些异构技术(heterogeneous technologies)之间的互操做性。

相关文章
相关标签/搜索