CXF的前端应用简介

Apache CXF的前端应用就是ApacheCXF最为Web Services的消费者,通过用客户端模式调用后台的Web
Services服务。 Apache
CXF的前端应用有5种实现模式。第一种是JAX-WS前端模式,第二种是JAX-RS前端模式(与支持Restful的WebServices是一致的),第三种是采用动态客户端技术,第四种是Provider和Dispatch接口方式,第五种是简化前端模式。

JAX-WS前端模式也有两种实现方式,一种是代码优先(Java First),一种是协议优先(WSDL First)。基于代码优先(Java First)的编程方式就是编写Java程序代码,然后发布java代码来产生客户端和服务端的Web Services。这里要用到CXF JAX-WS的java2WSDL,该程序可以把java对象转换为WSDL和XSD,并以此为基础生成WebServices。基于协议优先的编程方式就收首先生成WSDL文档,然后通过WSDL文档来产生客户端和服务端的Java代码,然后发布这些生成的客户端和服务端的WebServices。
1.1.基于代码优先的JAX-WS前端模式实现
1.1.1.基于代码优先的(Java First)的Web Services的步骤
(1)创建服务端点接口(SEI),定义公开为Web Services服务的方法。
可以直接从一个java类或一个接口开始。一般而言接口比java类要好一点,这样可以实现接口和具体实现类耦合开来。
(2)为java类或接口添加所需的注释。
针对要提供的外部Web Services服务,进行代码注释,同时也可以添加一些其他方面的注释,如数据绑定、服务名称、服务端口等等。
CXF的前端应用简介_第1张图片
① @WebServices注释
@WebServices注释是javax.jws.WebService接口的定义,这是一个接口或类,目的是说明该接口是作为服务来使用的。
CXF的前端应用简介_第2张图片
② @SOAPBinding注释
@SOAPBinding注释由javax.jws.soap.SOAPBinding接口来定义。如果@SOAPBinding注释没有指定,服务一般使用doc/literal的SOAP绑定。
CXF的前端应用简介_第3张图片
③ @WebMethod注释
@WebMethod注释是由javax.jws.WebMethod接口定义的,它被放置到SEI的方法上。
CXF的前端应用简介_第4张图片
④ @RequestWrapper注释
@RequestWrapper注释由javax.xml.ws.RequestWrapper接口定义。@RequestWrapper指定的实现包装Bean的java 类的请求方法参数,该方法参数是由一个远程调用发送请求消息中包含的参数。
CXF的前端应用简介_第5张图片
⑤ @ResponseWrapper注释
@ResponseWrapper注释由javax.xml.ws.ResponseWrapper接口来定义。
CXF的前端应用简介_第6张图片
⑥ WebFault注释
WebFault注释由javax.xml.ws.WebFault接口定义。
CXF的前端应用简介_第7张图片
⑦ @OneWay注释
@ OneWay注释由javax.jws.Oneway接口定义。@OneWay注释放置在SEI不需要的服务响应的方法。@ OneWay注释说明在此方法执行过程中不需要等待,不保留任何资源来处理响应。
⑧ @WebParam注释
@WebParam注释由javax.jws.WebParam接口定义。
CXF的前端应用简介_第8张图片
⑨ @WebResult注释
@WebResult注释由javax.jws.WebResult接口定义。
CXF的前端应用简介_第9张图片
(3)编写发布这个java程序的Web Services并发布服务。
(4)编写WebServices的客户端应用程序。
CXF的前端应用简介_第10张图片
CXF的前端应用简介_第11张图片

1.1.2.基于WSDL优先的JAX-WS前端模式实现
基于WSDL优先编程主要是通过已经存在的WSDL文档,然后通过CXF wsdl2java工具生成相关的客户端和服务器端的程序代码。
要建立一个基于JAX-WS协议的Web服务,步骤如下:
① 获得一个WSDL文档。
② 生成的Web Services组件。
③ 发布Web Services。
④ 开发一个Web Services客户端。
CXF的前端应用简介_第12张图片
1.1.3.简化前端模式
简化前端模式,与JAX-WS实现模式不同,简化前端模式在开发和部署Web Services时不提供任何正式的规范或标准。简化前端模式采用简单工厂模式创建服务。工厂组件采用java反射API去动态的创建服务组件和客户端组件。
CXF的前端应用简介_第13张图片
1.1.4.Provider/Dispatch服务前端应用模式
通过SEI的调用都是高层次上的Web Services,主要针对服务方法进行调用,但在有些应用场景下,开发人员需要对服务内的XML进行更深层次的解析和处理,这就需要采用新的工具和方法。
JAX-WS API的Provider和Dispatch接口用于对底层XML进行操作。
1.1.5.采用Apache CXF的动态客户端技术
Web Services客户端通常使用服务接口来调用服务方法,直至现在,客户端应用程序都是用服务端点接口(SEI)或服务端点接口代理接口来调用服务方法。
动态客户端动态的检查WSDL,并在WSDL定义基础上动态的创建客户端输入和输出对象,它也可以验证WSDL文件和输入/输出消息格式,但实际上动态客户端并没有调用Web服务作为单元测试环境的一部分。

你可能感兴趣的:(webservice)