1. org.apache.cxf.phase.PhaseManagerImpl中
  2. final void createInPhases() {
  3. int i = 0;
  4. inPhases = new SortedArraySet<Phase>();
  5. inPhases.add(new Phase(Phase.RECEIVE, ++i * 1000));
  6. inPhases.add(new Phase(Phase.PRE_STREAM, ++i * 1000));
  7. inPhases.add(new Phase(Phase.USER_STREAM, ++i * 1000));
  8. inPhases.add(new Phase(Phase.POST_STREAM, ++i * 1000));
  9. inPhases.add(new Phase(Phase.READ, ++i * 1000));
  10. inPhases.add(new Phase(Phase.PRE_PROTOCOL, ++i * 1000));
  11. inPhases.add(new Phase(Phase.USER_PROTOCOL, ++i * 1000));
  12. inPhases.add(new Phase(Phase.POST_PROTOCOL, ++i * 1000));
  13. inPhases.add(new Phase(Phase.UNMARSHAL, ++i * 1000));
  14. inPhases.add(new Phase(Phase.PRE_LOGICAL, ++i * 1000));
  15. inPhases.add(new Phase(Phase.USER_LOGICAL, ++i * 1000));
  16. inPhases.add(new Phase(Phase.POST_LOGICAL, ++i * 1000));
  17. inPhases.add(new Phase(Phase.PRE_INVOKE, ++i * 1000));
  18. inPhases.add(new Phase(Phase.INVOKE, ++i * 1000));
  19. inPhases.add(new Phase(Phase.POST_INVOKE, ++i * 1000));
  20. }
  21. final void createOutPhases() {
  22. outPhases = new SortedArraySet<Phase>();
  23. int i = 0;
  24. outPhases.add(new Phase(Phase.SETUP, ++i * 1000));
  25. outPhases.add(new Phase(Phase.PRE_LOGICAL, ++i * 1000));
  26. outPhases.add(new Phase(Phase.USER_LOGICAL, ++i * 1000));
  27. outPhases.add(new Phase(Phase.POST_LOGICAL, ++i * 1000));
  28. outPhases.add(new Phase(Phase.PREPARE_SEND, ++i * 1000));
  29. outPhases.add(new Phase(Phase.PRE_STREAM, ++i * 1000));
  30. outPhases.add(new Phase(Phase.PRE_PROTOCOL, ++i * 1000));
  31. outPhases.add(new Phase(Phase.WRITE, ++i * 1000));
  32. outPhases.add(new Phase(Phase.PRE_MARSHAL, ++i * 1000));
  33. outPhases.add(new Phase(Phase.MARSHAL, ++i * 1000));
  34. outPhases.add(new Phase(Phase.POST_MARSHAL, ++i * 1000));
  35. outPhases.add(new Phase(Phase.USER_PROTOCOL, ++i * 1000));
  36. outPhases.add(new Phase(Phase.POST_PROTOCOL, ++i * 1000));
  37. outPhases.add(new Phase(Phase.USER_STREAM, ++i * 1000));
  38. outPhases.add(new Phase(Phase.POST_STREAM, ++i * 1000));
  39. outPhases.add(new Phase(Phase.SEND, ++i * 1000));
  40. //Make sure ending interceptors are put in positions symmetric
  41. // to their starting interceptors
  42. outPhases.add(new Phase(Phase.SEND_ENDING, ++i * 1000));
  43. outPhases.add(new Phase(Phase.POST_STREAM_ENDING, ++i * 1000));
  44. outPhases.add(new Phase(Phase.USER_STREAM_ENDING, ++i * 1000));
  45. outPhases.add(new Phase(Phase.POST_PROTOCOL_ENDING, ++i * 1000));
  46. outPhases.add(new Phase(Phase.USER_PROTOCOL_ENDING, ++i * 1000));
  47. outPhases.add(new Phase(Phase.MARSHAL_ENDING, ++i * 1000));
  48. outPhases.add(new Phase(Phase.WRITE_ENDING, ++i * 1000));
  49. outPhases.add(new Phase(Phase.PRE_PROTOCOL_ENDING, ++i * 1000));
  50. outPhases.add(new Phase(Phase.PRE_STREAM_ENDING, ++i * 1000));
  51. outPhases.add(new Phase(Phase.PREPARE_SEND_ENDING, ++i * 1000));
  52. outPhases.add(new Phase(Phase.POST_LOGICAL_ENDING, ++i * 1000));
  53. outPhases.add(new Phase(Phase.USER_LOGICAL_ENDING, ++i * 1000));
  54. outPhases.add(new Phase(Phase.PRE_LOGICAL_ENDING, ++i * 1000));
  55. outPhases.add(new Phase(Phase.SETUP_ENDING, ++i * 1000));
  56. }

另外,如果级别一样,则按照配置的先后顺序进行拦截。顺序是<javaxws:interceptors></javaxws:interceptors>标签内出现的顺序。

CXF interceptor拦截顺序的更多相关文章

  1. CXF之五 拦截器Interceptor

    拦截器(Interceptor)是CXF功能最主要的扩展点,可以在不对核心模块进行修改的情况下,动态添加很多功能.拦截器和JAX-WS Handler.Filter的功能类似,当服务被调用时,就会创建 ...

  2. CXF对Interceptor拦截器的支持

    前面在Axis中介绍过Axis的Handler,这里CXF的Interceptor就和Handler的功能类似.在每个请求响应之前或响应之后,做一些事情.这里的Interceptor就和Filter. ...

  3. SpringMVC中使用Interceptor拦截器顺序

    一.简介 SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验 证,或者是来判断用户是否登陆,或者是像1 ...

  4. 【CXF】- 拦截器 Interceptor

    CXF拦截器 拦截动态操作请求和响应数据 拦截器分类 位置:服务器端拦截器,客户端拦截器 消息方向:入拦截器 出拦截器 定义者:系统拦截器 自定义拦截器:LoggingInInteceptor ①:创 ...

  5. SpringMVC中使用Interceptor拦截器

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  6. Apache CXF自定义拦截器

    为什么设计拦截器?1.为了在webservice请求过程中,能动态操作请求和响应数据,CXF设计了拦截器 拦截器分类: 1.按所处的位置分:服务器端拦截器,客户端拦截器. 2.按消息的方向分:入拦截器 ...

  7. CXF 自定义拦截器

    此例子来自apache cxf sample. /**  * Licensed to the Apache Software Foundation (ASF) under one  * or more ...

  8. Spring MVC中使用Interceptor拦截器

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那 ...

  9. SpringMVC 中的Interceptor 拦截器

    1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors>  <!-- 日志拦截器 -->  <mvc:interceptor> ...

随机推荐

  1. java的wait和notifyAll使用方法

    class Num { private int num; public int getNum() { return num; } public void setNum(int num) { this. ...

  2. Android应用程序组件Content Provider的启动过程源代码分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6963418 通过前面的学习,我们知道在Andr ...

  3. 多线程:pthread_exit,pthread_join,pthread_self

    /*exit_join_id.c*/ #include<pthread.h> #include<stdio.h> void* eji(void* agr) { printf(& ...

  4. WLW 截屏插件

    转载:http://www.xtit.net/post/1030/ 一直以来用WLW更新博客,刚刚在DailyApps看到一个关于Windows Live Writer的截屏插件,相当不错. 是由MS ...

  5. FtpClient的使用

    摘自:http://hi.baidu.com/yuanhotel/item/000b6334894d11f42784f4da Java的ftp操作 package com.why.ftp; impor ...

  6. javascript 算法

    前段时间学习算法方面的知识看了一下用C语言写的一些简单的算法自己用js模拟实现一遍现在整理出来和大家分享一下. 河内塔 斐波那契数列 巴斯卡三角形 三色棋 河内之塔(Towers of Hanoi)是 ...

  7. C++ 多态性浅谈

    多态:一个接口, 多种方法.程序在运行时才决定调用的函数是什么. C++多态通过 虚函数实现, 虚函数允许子类重新定义成员函数, 子类override父类. 多态与非多态的实质区别:函数地址是早绑定还 ...

  8. 从汇编看c++成员函数指针(三)

    前面的从汇编看c++中成员函数指针(一)和从汇编看c++成员函数指针(二)讨论的要么是单一类,要么是普通的多重继承,没有讨论虚拟继承,下面就来看一看,当引入虚拟继承之后,成员函数指针会有什么变化. 下 ...

  9. 使用SQLiteHelper创建数据库并插入数据

    参考<疯狂android讲义>8.4节P424 1.获取SQLiteDatabase实例有2种方法,一是直接new SQLiteDatabase(),另一种使用SQLiteHelper.一 ...

  10. 在Struts2中使用poi进行excel操作下载的时候报getOutputStream() has already been called for this response 错误 [转]

    在项目中用到了poi这个开源的操作excel文件的jar. 项目中用到struts2容器管理servlet.不是单纯的直接用servlet.         workbook.write(os);   ...