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));
}
分享到:
相关推荐
首先,Interceptor是CXF框架中的一个核心组件,它允许我们在服务调用的生命周期中插入自定义的行为。拦截器可以拦截并处理消息的发送和接收,从而提供了一种灵活的方式来扩展或增强服务的功能。例如,我们可以通过...
标题:“CXF拦截器(Interceptor)的使用” 描述:“讲解了cxf实现拦截器的原因、核心API及使用方法” 在深入探讨CXF拦截器的使用之前,我们首先需要理解其在CXF框架中的核心作用与价值。Apache CXF是一个开源框架,...
在Java世界中,Apache CXF是一个广泛使用的开源框架,它允许开发者创建和消费Web服务。当我们谈论"CXF发布WebService加入拦截器"时,这涉及到在CXF服务端和客户端增加拦截器来增强服务功能和控制流程。拦截器是CXF...
在IT行业中,尤其是在Web服务开发领域,CXF是一个广泛应用的开源框架,用于构建和开发SOAP和RESTful服务。当我们处理中文或者其他非ASCII字符时,编码问题可能会成为一个棘手的问题。"cxf使用中编码问题"这个主题...
在提供的压缩包文件中,`WebService_CXF_Interceptor_Client_3`和`WebService_CXF_Interceptor_Server_3`可能包含了客户端和服务端的示例代码。这些示例可能展示了如何创建自定义拦截器,以及如何在`EndpointImpl`中...
在这个主题中,我们将深入探讨CXF的Interceptor拦截器、处理复杂类型对象的传递以及如何结合Spring进行集成,最后我们将学习如何使用ANT工具快速构建和部署CXF工程。 1. CXF Interceptor拦截器: 拦截器是CXF框架...
在CXF中,我们可以通过实现`org.apache.cxf.interceptor.Fault`和`org.apache.cxf.phase.Phase`接口,然后将这些拦截器添加到服务端的拦截器链中。 接着,客户端拦截器(inter_client)同样重要。它们允许我们在...
2. **自定义拦截器实现**:你可以通过实现`org.apache.cxf.interceptor.Fault`和`org.apache.cxf.phase.Phase`接口来自定义拦截器。`Phase`接口定义了拦截器执行的阶段,如PRE_INVOKE、POST_INVOCATION等。每个拦截...
import org.apache.cxf.phase.Phase; public class InInterceptor extends AbstractPhaseInterceptor<Message> { private int limit = 102400; public int getLimit() { return limit; } public void set...
CXF(CXF: Composite eXtensible Services Framework)是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)中的Web服务。CXF允许开发者以他们选择的语言(如Java)编写服务端和客户端代码,同时支持多种Web...
这里的Interceptor就和Filter、Struts的Interceptor很类似,提供它的主要作用就是为了很好的降低代码的耦合性,提供代码的内聚性。以HelloWorldService为例子。 参照网址:...
1. Interceptor 是 CXF 中的一种机制,它允许开发者在 WebService 的生命周期中执行自定义的逻辑。 2. CXF 提供了多种类型的 Interceptor,包括: * LoggingInterceptor:用于记录 WebService 的调用日志 * ...
你可以继承`org.apache.cxf.interceptor.FaultInterceptor`或`org.apache.cxf.interceptor.AbstractFaultInterceptor`类,并重写其`handleMessage`方法来插入自己的逻辑。然后,你需要在服务端或客户端的配置中注册...
在CXF服务端,你可以通过实现`org.apache.cxf.interceptor.Fault`和`org.apache.cxf.phase.PhaseInterceptorChain`接口的类来创建自定义拦截器,并将它们添加到服务的拦截器链中。 4. **“inter_client”**: 这...
拦截器是CXF框架中的一个重要组成部分,允许开发者在服务调用的生命周期中插入自定义逻辑,实现如日志记录、安全检查、性能监控等功能。本篇将深入探讨CXF拦截器的理论基础,并演示如何为CXF的客户端和服务端添加...
首先,我们需要创建一个实现了`org.apache.cxf.interceptor.Fault`和`org.apache.cxf.phase.PhaseInterceptor`接口的类。这个类通常会包含处理权限检查的业务逻辑。例如,你可以定义一个名为`...
【Cxf转换器示例】是一个关于Web服务技术的实践项目,主要聚焦于Apache CXF框架中的转换器(Converter)功能。Apache CXF是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)和RESTful应用程序。CXF不仅支持...
在IT行业中,尤其是在Web服务开发领域,Apache CXF是一个广泛使用的开源框架,它允许开发者创建和消费各种Web服务。CXF提供了丰富的功能,包括服务端和客户端的拦截器(Interceptor)机制,使得开发者能对服务调用...
创建一个实现了`org.apache.cxf.interceptor.Fault`和`org.apache.cxf.phase.Phase`接口的类,如`SoapHeaderInterceptor`,并在`handleMessage`方法中处理头部信息: ```java public class SoapHeaderInterceptor...
Interceptor(拦截器)是Spring MVC和CXF中的一个重要概念,它们允许我们在方法调用前后插入自定义逻辑,例如日志记录、权限检查或事务管理。在WebServices/Controller Interceptor中,拦截器可以用于在处理请求前...