Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未按正确顺序调用CXF侦听器_Java_Cxf - Fatal编程技术网

Java 未按正确顺序调用CXF侦听器

Java 未按正确顺序调用CXF侦听器,java,cxf,Java,Cxf,我有4个cxf拦截器,每个拦截器都扩展了AbstractPhaseInterceptor。我按以下方式订购: A类: public class AInterceptor extends AbstractPhaseInterceptor<Message> { public AuthenticationInterceptor() { super(Phase.PRE_INVOKE); super.addAfter(OInInterceptor.c

我有4个cxf拦截器,每个拦截器都扩展了AbstractPhaseInterceptor。我按以下方式订购:

A类:

public class AInterceptor extends AbstractPhaseInterceptor<Message> {


    public AuthenticationInterceptor() {
        super(Phase.PRE_INVOKE);
        super.addAfter(OInInterceptor.class.getName());
        super.addAfter(HInterceptor.class.getName());

    }

    public void handleMessage(Message message) throws Fault {

        System.out.println("Into AInterceptor");
        System.out.println(super.getAfter()); //This is what prints the last line.
    }
}
公共类AInterceptor扩展AbstractPhaseInterceptor{
公共身份验证侦听器(){
超级(阶段前调用);
super.addAfter(OInInterceptor.class.getName());
super.addAfter(HInterceptor.class.getName());
}
public void handleMessage(消息消息消息)引发错误{
System.out.println(“输入到AInterceptor”);
System.out.println(super.getAfter());//这是打印最后一行的内容。
}
}
H类:

 public class HInterceptor extends AbstractPhaseInterceptor<Message> {


    public HInterceptor() {
        super(Phase.PRE_INVOKE);
        super.addBefore(PInterceptor.class.getName());
    }


    public void handleMessage(Message message) throws Fault {

        System.out.println("Into HInterceptor ...");
    }
}
公共类HInterceptor扩展AbstractPhaseInterceptor{
公共提示器(){
超级(阶段前调用);
super.addBefore(PInterceptor.class.getName());
}
public void handleMessage(消息消息消息)引发错误{
System.out.println(“进入提示接收器…”);
}
}
O类:

 public class OInterceptor extends AbstractPhaseInterceptor<Message> {

    private ServerPolicyEvaluator serverPolicyEvaluator;

    public OrderZeroPolicyInInterceptor() {
        super(Phase.PRE_INVOKE);
        super.addBefore(PInterceptor.class.getName());
        super.addAfter(HInterceptor.class.getName());
    }


    @Override
    public void handleMessage(Message message) throws Fault {

        System.out.println("Into OInterceptor ...");
    }
}
公共类OInterceptor扩展AbstractPhaseInterceptor{
专用服务器PolicyEvaluator服务器PolicyEvaluator;
公共订单ZeroPolicyInInterceptor(){
超级(阶段前调用);
super.addBefore(PInterceptor.class.getName());
super.addAfter(HInterceptor.class.getName());
}
@凌驾
public void handleMessage(消息消息消息)引发错误{
System.out.println(“Into OInterceptor…”);
}
}
p类:

public class PInterceptor extends AbstractPhaseInterceptor<Message> {


    public PInterceptor() {
        super(Phase.PRE_INVOKE);
        super.addAfter(HInterceptor.class.getName());
    }


    public void handleMessage(Message message) throws Fault {

        System.out.println("Into PInterceptor ...");
    }
}
公共类PInterceptor扩展了AbstractPhaseInterceptor{
公共PInterceptor(){
超级(阶段前调用);
super.addAfter(HInterceptor.class.getName());
}
public void handleMessage(消息消息消息)引发错误{
System.out.println(“输入PInterceptor…”);
}
}
但是,当我运行应用程序时,会得到以下输出: 进入“暗示者”。。。 变成一个接受者 [com.xyz.interceptors.H,com.xyz.interceptors.O]

OInterceptor应该在AInterceptor之前执行。为什么拦截器的执行顺序不正确