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> ...
随机推荐
- 也谈---基于 HTTP 长连接的“服务(转载)
这里指讨论基于HTTP的推技术, 诸如flash,applet之类的东西不作分析, 他们就不能说是"纯粹"的浏览器应用了. 首先是一点背景知识, 大家都知道长连接避免了tcp连接的 ...
- CSDN-Markdown语法集锦
前言: 使用Markdown近一个来月.越来越认为不舒爽. 改字体.改字号.改颜色.改样式,全不会!想加个数学公式.得,仅仅会截图.把图片传上去了还不会控制大小.也不会控制文字与图片的排版,写出来的博 ...
- 有关docker新版的icc、iptables的一个巨坑
之前玩过docker的icc=false.iptables=true 按照这两个参数配置之后,想指定两个特定的容器通讯,直接用--link即可. 但最近我在下载了1.12新版的docker,这个不奏效 ...
- JVM 垃圾回收机制( 一) 回收对象的判定
关于JVM 的垃圾回收机制,我们一般都没过多深入,因为JAVA 和 C++ 的一个很大区别就是,JAVA 帮我们做了垃圾回收,而不用像C++ 那么样手动进行回收,当然任何自动的东西都存在一定弊端,比如 ...
- PHP学习笔记1.2——预定义变量参考
预定义变量和用户自定义变量在使用上没有区别,大多数预定义变量的执行结果都是服务器的相关信息(如:版本号.路径.错误参数等),所以我们很少将其用于网站前台开发,如果被别有用心得人知道了后,会严重威胁服务 ...
- 在SQL中修改数据库名称
假设SQL Server 2008中有个数据库test,现在要将其改名为zhy步骤:(1) 分离数据库:打开management studio,找到test数据库-->右键-->任务--& ...
- 安装apache mysql 论坛(一)
安装mysql: 注: yum文件配置: 检查配置文件: 启动:service mysqld start 查询表: apache安装 启动: 查看端口: 欢迎界面: 如果服务了4000次,会主动销毁, ...
- ASP.NET MVC请求特殊静态文件返回404 Not Found
今天在请求静态的json档案以及woff2档案,会返回404错误,需要在Web.Config里修改: <system.webServer> <modules> <remo ...
- Lua编程入门-学习笔记1
第1章:起点 Chunks: 语句块 每个语句结尾的分号是可选的,如果同一行有多个语句最好使用分号分隔: dofile("lib1.lua") -- 执行lua文件 全局变量:局 ...
- navicat for mysql 将结果导出到txt文件
其实navicat 是带这个导出功能的,可是很多人不知道怎么用. 1.如图:查询sql语句.得到结果