CXF interceptor拦截顺序
- org.apache.cxf.phase.PhaseManagerImpl中
- final void createInPhases() {
- int i = 0;
- inPhases = new SortedArraySet<Phase>();
- inPhases.add(new Phase(Phase.RECEIVE, ++i * 1000));
- inPhases.add(new Phase(Phase.PRE_STREAM, ++i * 1000));
- inPhases.add(new Phase(Phase.USER_STREAM, ++i * 1000));
- inPhases.add(new Phase(Phase.POST_STREAM, ++i * 1000));
- inPhases.add(new Phase(Phase.READ, ++i * 1000));
- inPhases.add(new Phase(Phase.PRE_PROTOCOL, ++i * 1000));
- inPhases.add(new Phase(Phase.USER_PROTOCOL, ++i * 1000));
- inPhases.add(new Phase(Phase.POST_PROTOCOL, ++i * 1000));
- inPhases.add(new Phase(Phase.UNMARSHAL, ++i * 1000));
- inPhases.add(new Phase(Phase.PRE_LOGICAL, ++i * 1000));
- inPhases.add(new Phase(Phase.USER_LOGICAL, ++i * 1000));
- inPhases.add(new Phase(Phase.POST_LOGICAL, ++i * 1000));
- inPhases.add(new Phase(Phase.PRE_INVOKE, ++i * 1000));
- inPhases.add(new Phase(Phase.INVOKE, ++i * 1000));
- inPhases.add(new Phase(Phase.POST_INVOKE, ++i * 1000));
- }
- final void createOutPhases() {
- outPhases = new SortedArraySet<Phase>();
- int i = 0;
- outPhases.add(new Phase(Phase.SETUP, ++i * 1000));
- outPhases.add(new Phase(Phase.PRE_LOGICAL, ++i * 1000));
- outPhases.add(new Phase(Phase.USER_LOGICAL, ++i * 1000));
- outPhases.add(new Phase(Phase.POST_LOGICAL, ++i * 1000));
- outPhases.add(new Phase(Phase.PREPARE_SEND, ++i * 1000));
- outPhases.add(new Phase(Phase.PRE_STREAM, ++i * 1000));
- outPhases.add(new Phase(Phase.PRE_PROTOCOL, ++i * 1000));
- outPhases.add(new Phase(Phase.WRITE, ++i * 1000));
- outPhases.add(new Phase(Phase.PRE_MARSHAL, ++i * 1000));
- outPhases.add(new Phase(Phase.MARSHAL, ++i * 1000));
- outPhases.add(new Phase(Phase.POST_MARSHAL, ++i * 1000));
- outPhases.add(new Phase(Phase.USER_PROTOCOL, ++i * 1000));
- outPhases.add(new Phase(Phase.POST_PROTOCOL, ++i * 1000));
- outPhases.add(new Phase(Phase.USER_STREAM, ++i * 1000));
- outPhases.add(new Phase(Phase.POST_STREAM, ++i * 1000));
- outPhases.add(new Phase(Phase.SEND, ++i * 1000));
- //Make sure ending interceptors are put in positions symmetric
- // to their starting interceptors
- outPhases.add(new Phase(Phase.SEND_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.POST_STREAM_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.USER_STREAM_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.POST_PROTOCOL_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.USER_PROTOCOL_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.MARSHAL_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.WRITE_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.PRE_PROTOCOL_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.PRE_STREAM_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.PREPARE_SEND_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.POST_LOGICAL_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.USER_LOGICAL_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.PRE_LOGICAL_ENDING, ++i * 1000));
- outPhases.add(new Phase(Phase.SETUP_ENDING, ++i * 1000));
- }
另外,如果级别一样,则按照配置的先后顺序进行拦截。顺序是<javaxws:interceptors></javaxws:interceptors>标签内出现的顺序。
CXF interceptor拦截顺序的更多相关文章
- CXF之五 拦截器Interceptor
拦截器(Interceptor)是CXF功能最主要的扩展点,可以在不对核心模块进行修改的情况下,动态添加很多功能.拦截器和JAX-WS Handler.Filter的功能类似,当服务被调用时,就会创建 ...
- CXF对Interceptor拦截器的支持
前面在Axis中介绍过Axis的Handler,这里CXF的Interceptor就和Handler的功能类似.在每个请求响应之前或响应之后,做一些事情.这里的Interceptor就和Filter. ...
- SpringMVC中使用Interceptor拦截器顺序
一.简介 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验 证,或者是来判断用户是否登陆,或者是像1 ...
- 【CXF】- 拦截器 Interceptor
CXF拦截器 拦截动态操作请求和响应数据 拦截器分类 位置:服务器端拦截器,客户端拦截器 消息方向:入拦截器 出拦截器 定义者:系统拦截器 自定义拦截器:LoggingInInteceptor ①:创 ...
- SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...
- Apache CXF自定义拦截器
为什么设计拦截器?1.为了在webservice请求过程中,能动态操作请求和响应数据,CXF设计了拦截器 拦截器分类: 1.按所处的位置分:服务器端拦截器,客户端拦截器. 2.按消息的方向分:入拦截器 ...
- CXF 自定义拦截器
此例子来自apache cxf sample. /** * Licensed to the Apache Software Foundation (ASF) under one * or more ...
- Spring MVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...
- SpringMVC 中的Interceptor 拦截器
1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors> <!-- 日志拦截器 --> <mvc:interceptor> ...
随机推荐
- ORM框架Hibernate (一) 对DAO封装和抽象
说明 前面已经给大家介绍了Struts这个框架,Struts是对Web项目的表示层进行了封装,而Hibernate是对Web项目中DAO层进行封装,也即是.NET中我们常用到的D层封装,即对访问数据库 ...
- 【数学三角恒等变幻】【HDU2552】三足鼎立
Problem Description MCA山中人才辈出,洞悉外界战火纷纷,山中各路豪杰决定出山拯救百姓于水火,曾以题数扫全场的威士忌,曾经高数九十九的天外来客,曾以一剑铸十年的亦纷菲,歃血为盟,盘 ...
- 分享一个自己写的基于JQuery的一个Web背景切换的Demo
这个效果主要有两个特点: 1. 背景切换的渐变 2. 背景大小自适应 3. 背景自适应保持比例同时, 相对居中 js源码: (function ($) { $.fn.bgChange = functi ...
- 远程调试weinre的使用
一.用途 *鉴于在浏览器调试移动端页面无法准确反映移动端实际情况并无法高效调试,故常常使用远程调试工具通过电脑连接手机进行调试,常用远程调试方式: 1.chrome连接安卓机远程调试 2.Mac连接苹 ...
- (原创) C# List 找 Max 的 Index
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- sql 函数 总结
聚合函数 Avg(numeric_expr)返回integer.decimal.money.float---返回组中各值的平均值 Count(*|column_name|distinct column ...
- 我们为什么要遵循W3C标准规范
大部分的站长和拥有网站的企业负责人都会知道,每当有浏览器发布大更新的时候,我们刚建立不久的网站就会发生无法预知的严重错误,我们只能重新建立或改版网站,使其可以应归新发布的浏览器.好比1996-1999 ...
- Spring-----5、Spring容器中的bean
转载自:http://blog.csdn.net/hekewangzi/article/details/45645831
- VB.NET Shared(共享)和 Static(静态)关键字的区别
共享成员(Shared): VB.NET现在是支持真正的面向对象编程,可以继承.使用多态.共享成员 和静态成员. 共享成员就是在所有类和所定义派生类的实例之间共享的方法.属 性.字段和事件.所有使用类 ...
- 设计模式--委托模式C++实现
原文章地址:http://www.cnblogs.com/zplutor/archive/2011/09/17/2179756.html [委托模式 C++实现] 我对.Net的委托模型印象很深刻,使 ...