CXF前端(Frontend)是编程使用的API,用来开发和对外暴露Web Services。CXF提供两种类型的前端(Frontend):JAX-WS和简单前端(Simple Frontend)。本节将详细介绍JAX-WS前端。
JAX-WS前端
Code-First方式
创建Service Endpoint Interface ( SEI)
添加Java注解
发布服务
开发客户端
运行Web Service
JAX-WS前端
CXF支持由Java Community Process (JCP)提供的JAX-WS 2.0 API规范。CXF实现了JAX-WS规范。
JAX-WS提供了两种方式来创建Web Service:Code-First和Contract-First。
Code-First:先创建Java类然后基于Java类生成Web Service组件。一般用于输入/输出对象格式简单,并希望快速部署应用。Code-First的方式正如开发普通的JAVA应用一样,不用关心WSDL和XSD的生成,也不必维护JAVA对象和XML元素的映射关系。只需要在JAVA类中注明,CXF中的工具Java2WSDL会为你完成这些工作。
Contract-First:开发者基于WSDL规范来编写将要暴露的Web Service。Contract-First的方式适用于你已经定义好Web Service操作的输入/输出的消息格式,或者想更好的控制XML与JAVA对象之间的映射关系。Contract-First开发模式要求你精通XSD和WSDL规范。
想更深一步了解请看:《代码优先(Code-First)和契约优先(Contract-First)的比较》
Code-First方式:
Code-First方式需求完成的工作有:
创建Service Endpoint Interface ( SEI)
添加Java注解
发布服务
开发客户端
创建Service Endpoint Interface ( SEI):
Service Endpoint Interface与JAVA Interface类似,定义了业务的服务方法。你可以从零开始开发SEI,或者将现有的业务功能转换为基于服务的组件。
从零开始就是说,没有任何代码或WSDL约束,重新开发Web Service。适用于先创建接口后编写实现代码。将现有代码转换,就是利用已经存在的业务功能,将其转换为基于服务的组件。大部分情况是我们拥有已经实现好的业务逻辑,只是需要将其暴露为Web Service方法。我们可以开发SEI并定义哪些业务方法需要暴露出去,很轻松的实现普通业务到基于服务的转变。