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> ...
随机推荐
- Unity 关于属性的get/set
学习Unity的可能多数是C#转过来的, 一进来的时候你会发现Unity编写代码,在一些视频或文章中.基本都没有用过get/set使用, 多数是public string name;这样写的公开字段, ...
- PHP流程控制中不经常使用的替代语法
准备做个wordpress的主题.结果看到了例如以下的语法: <div id="primary" class="content-area"> < ...
- 转:Xshell显示找不到匹配的outgoing encryption算法怎么办
原文出处:http://www.xshellcn.com/xsh_column/suanfa-bpp.html 由用户反应在使用xshell和xftp连接debian 7时出现找不到匹配的outgoi ...
- What should we do when meet a crash in android?
制造一个crash 为了演示的目的,我在libsensors的open_sensors_device中故意制造了一个crash: static int open_sensors_device( ...
- 部署sharepointform验证
1 iis sharepoint v4 提供程序2 web service 验证提供程序3 创建web应用程序(选择基于身份验证模式,配置提供程序)4 创建网站集(空)5 创建网站集
- Android开发_关于如何屏蔽Home键
今天在遇到一个要屏蔽Home键的问题,研究一上午终于解决,方法记录于下: 在Android2.3版本以下重写以下方法就能屏蔽Home键: public void onAttachedToWindow( ...
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- 从汇编看c++对静态成员的存取
c++中静态成员变量不存在于对象之中,而存在于全局数据段,只是其可见性受到限制,仅能被所属类访问,而非静态成员变量存在于对象中,因而,在访问两种不同数据成员时,会有些许差别.对于静态数据成员的访问,是 ...
- go import
import "fmt"最常用的一种形式 import "./test"导入同一目录下test包中的内容 import f "fmt"导入f ...
- 解决英文版Windows程序乱码
前段时间由于工作需要装了一个英文版Windows,以至于在一些脚本和控制台程序里面处理汉字的时候总是显示乱码(比如:“???”). 在尝试了很多编码和解码的操作后,乱码问题还是没能很好的解决.后来才发 ...