关于FrontEnt:
在CXF的架构中,有一个FrontEnd概念(组件),实际上这是CXF提供或支持的WebService的编程模型,目前有四种:
Annotations:基于CXF自己提供的注解实现WS.
Dynamic Clients: 一套可以动态创建client的API,不需要生成client端的stub.
JAX-WS:推荐的标准编程模型。
Simple:这是一种不使用任何注解,完全依赖反射实现WS的编程模型。(注:simple方式虽然简单,但是有问题,JAX-WS是被推荐的首选)
关于数据绑定:
对于每一种平台都存在将wsdl中使用xml描述的数据结构映射到本平台组件(类)上的问题,这就是所谓的“数据绑定”。一种数据绑定方案应该完成以下三项工作:
- Mapping the live data as it comes into and out of services.
- Providing XML schema based on Java objects for dynamic ?wsdl URLs and java2ws.
- Generating Java code from WSDL for wsdl2java (and, theoretically, dynamic clients).
java平台上实现xml和java类互转换的框架或规范有:JAXB、XMLBeans、JiBX等。其中JAX-WS使用JAXB规范做为数据绑定策略,而CXF的默认数据绑定策略也是JAXB.需要特别说明的,数据绑定的过程是高度自动和透明的,因此在初学WS时常常不能理解这一过程是如何进行的,对于CXF来说,我们可以从它的spring配制文件中配制使用何种数据绑定方案。如下图: