自定义拦截器需要继承org.apache.cxf.phase.AbstractPhaseInterceptor 抽象类,并实现其handleMessage方法,与重写自定义的构造器(由于AbstractPhaseInterceptor 没有无参构造器,所以要在自定义构拦截器的造器中调用supper(带参数))。 部分代码 public class AuthIntercetpr extends AbstractPhaseInterceptor<SoapMessage> { public AuthIntercetpr() { //子类总会调用父类的构造器, //默认是调用无参数的构造器。 //指定该拦截器在哪个阶段被激发 super(Phase.PRE_INVOKE); } //处理消息 public void handleMessage(SoapMessage message) { System.out.println("==================" + message); //获取SOAP消息的全部头 List<Header> headers = message.getHeaders(); if(headers.size() < 1) { throw new Fault(new SOAPException("SOAP消息头格式不对哦!")); } for(Header header : headers) { SoapHeader soapHeader = (SoapHeader)header; //取出SOAP的Header元素 Element element = (Element)soapHeader.getObject(); checkSOAPHeader(element); } } } 如何将自定义的拦截器加入服务端或客户端 请参照上一章节 Web Service (010---webservice拦截器)