CXF内容总结
来源:互联网 发布:龟头增大知乎 编辑:程序博客网 时间:2024/05/24 06:08
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接口,实际上是继承其一个实现类。
客户端添加拦截器
- CXF内容总结
- cxf 错误总结
- cxf调用webservice总结
- Spring + Cxf 总结
- WebService -- CXF 总结
- CXF开发总结
- CXF技术总结
- CXF发布WebService总结
- 错误总结-apache-CXF
- 使用cxf发布webservice总结
- CXF
- CXF
- cxf
- CXF
- CXF
- CXF
- CXF
- Cxf
- 足球守门机器人(附视频)——智能机器人守门员—— 梅西足球机器人守门员——守门员机器人介绍
- 女友没救了~追美国队长还要入手KIMON~
- 函数调用--函数栈
- eclipse打开当前文件所在文件夹的两种方法
- ISP与IAP的区别
- CXF内容总结
- 在winfrom窗体中使用漂亮的窗体样式。
- Python学习之基础总结--3
- Masonry与frame
- 逆向技术
- Linux命令列出所有用户
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- 【Get深一度】CButtonST v3.9 (MFC Flat buttons)
- 删除排序数组中的重复数字 II