CXF内容总结

原创 2016年05月31日 10:37:16

CXF = XFire(webservice框架) + Celtrix(ESB框架)
http://cxf.apache.org/
内置jettyweb服务器

服务器端:
1.开发webservice接口,要用@webservice注解;
2.定义实现类,要用@WebService注解,并指定参数;
3.发布webservice(必要jar包:servlet,jetty) ;

客户端:
1.调用cxf的wsdl2java工具,根据wsdl文档生成java代码;
2.找到wsdl2java生成的java代码中继承了service的类,该类的实例可作为工厂;
3.调用getport方法,可返回webservice代理;

形参返回值为复杂类型,list集合,数组等时cxf都可以处理
还是一些map,非java式的复合类,处理不了
在实际的项目中,webservice组件自己并不会去实现业务功能,它只是调用业务逻辑组件的方法来暴漏webservice

在cxf开发中,如果遇到系统无法自动处理的类型,自行解决,处理思路就是提供一个转换器。
(1)使用@xmljavatypeadapter(….class) extends xmlapapter修饰cxf无法处理的类型。使用该注解时,通过value属性指定一个转换器。
(2)实现自己的转换器。转换器负责他们之间的转换。

xml里面的两个属性
targetNamespace 相当于java语言里面的package
xmlns 相当于java语言的import

一次webservice的调用,其实并不是方法的调用,而是发送soap消息(xml文档片段)
对于sayHi来说
传入消息是:

字符串

传出消息是:

字符串

对于getCatByUser操作来说
传入消息是:


字符串
整数字符串字符串


传出消息是:


字符串整数值字符串

调用一次webservice的本质:
1.客户端把调用方法参数,转换为xml文档片段(soap消息)。
2.通过网络,把xml文档片段传给服务器。
3.服务器接收xml文档片段。
4.服务器解析xml文档片段,得到webservice所需的参数。
5.服务器执行方法。
6.把执行方法得到的返回值,在此转换为xml文档片段。
7.通过网络,把xml文档给客户端。
8.客户端接收到xml。
9.客户端解析xml文档片段,提取数据。

一个语言要支持webservice
要求,该语言支持xml文档解析,生成,支持网络传输。

webservice 需要解决的问题,如何进行权限控制?
服务器端要求input消息总是携带用户名和密码。

如果不用cxf框架,soap消息的生成与解析都是由程序员负责的,但此时需要cxf框架来完成,cxf提供了拦截器。
客户端和服务器端都有两种拦截器
in拦截器
out拦截器

服务器端添加拦截器
1.获取endpoint的publish方法返回值。
2.调用该方法返回值的getininterceptor,getoutinterceptor方法来获取in,out拦截器列表,接下来添加拦截器。

自定义拦截器
需要实现interceptor接口,实际上是继承其一个实现类。

客户端添加拦截器

Spring框架整合CXF WebService实现原理

路人宅 2017-05-01 00:25 Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描...
  • u011277123
  • u011277123
  • 2017年05月02日 09:41
  • 344

cxf消息拦截器

大文件 特殊验证 日志记录 Soap消息处理 消息的压缩处理
  • flash8627
  • flash8627
  • 2014年12月09日 09:43
  • 1174

Cxf中获取Http对象

介绍在使用Cxf的过程中如何获取到Webservice对应的Http对象,比如HttpServletRequest对象。...
  • elim168
  • elim168
  • 2017年05月17日 17:45
  • 8405

Apache CXF 框架结构和基本原理

CXF旨在为服务创建必要的基础设施,它的整体架构主要由以下几个部分组成: 1.Bus 它是C X F架构的主干,为共享资源提供了一个可配置的场所,作用非常类似于S p r i n g的Applic...
  • Rongbo_J
  • Rongbo_J
  • 2016年02月22日 20:39
  • 2939

基于CXF webservice(3)高级属性之拦截器(interceptor)

webservice中用来对消息进行填充,验证,等预处理的高级特性。个人感觉比较重要,实用价值比较高。...
  • tianjun2012
  • tianjun2012
  • 2015年08月07日 14:49
  • 720

CXF系列之SOAP消息格式

我们从前面了解 WebService 使用 HTTP 协议传输消息,消息格式使用 SOAP,那么在客户端和服务器端传输的 SOAP 消息是什么样子的呢?下面我们将服务端 SoapServer.java...
  • u013313550
  • u013313550
  • 2016年11月24日 15:43
  • 1018

WebService学习笔记-CXF添加拦截器

Webservice拦截器:在webservice请求过程中,动态操作请求和响应的数据分类按照所处的位置分:服务器端拦截器  客户端拦截器按照消息的方向分:入拦截器  出拦截器按照定义者分:系统拦截器...
  • umgsai
  • umgsai
  • 2016年02月04日 11:03
  • 140

CXF系列(三):拦截器

拦截器这个概念基本上都已经熟悉了,本文要讲的CXF拦截器就是在客户端调用前拦截,以及调用服务端方法前拦截。因为考虑两个应用互相掉接口的权限和安全性问题,服务端要验证是否合理才传递东西给客户端,所以客户...
  • pangliang_csdn
  • pangliang_csdn
  • 2017年01月09日 16:29
  • 449

WebService(5)_Apache CXF 服务端四种发布方式(图文详解实例)

感觉CXF的开发方式,和使用JDK原生开发,并没有什么太大的区别 注: 由于JDK或者CXK框架的版本问题,生成客户端之后,有一个类会抛出异常,原则上,可以根据提示,将第三个入参删除,并不会对调用W...
  • Simba_cheng
  • Simba_cheng
  • 2016年09月17日 20:53
  • 3545

cxf InInterceptor 获取header参数token

贴出代码 public void handleMessage(Message  message) {              Message request = message.getExcha...
  • wisdomhealth
  • wisdomhealth
  • 2017年11月14日 13:36
  • 96
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CXF内容总结
举报原因:
原因补充:

(最多只允许输入30个字)