2016-10-18 7 views
1

У меня есть перехватчик, который будет выполнять свою специфическую логику для запроса MultiPart для фазы UNMARSHAL. Для этой фазы есть совсем другой перехватчик CXF, в котором я не хочу писать свои логика.Можем ли мы иметь несколько перехватчиков CXF в одной фазе

Мой вопрос: можем ли мы создать несколько перехватчиков CXF для одной и той же фазы? Если да , то какой порядок, в котором они вызваны, как показано ниже, например,

Например.

public class Interceptor1 extends AbstractPhaseInterceptor<Message> { 

     public Interceptor1() { 
     super(Phase.UNMARSHAL); 
     } 
     @Override 
     public void handleMessage(Message message) throws Fault { 
      System.out.println("Interceptor1"); 
     } 

} 

public class Interceptor2 extends AbstractPhaseInterceptor<Message> { 

     public Interceptor2() { 
     super(Phase.UNMARSHAL); 
     } 
     @Override 
     public void handleMessage(Message message) throws Fault { 
      System.out.println("Interceptor2"); 
     } 

} 

ответ

1

Каждая фаза может содержать столько перехватчиков, которые вы хотите, когда более чем один перехватчики найдены в фазе они будут выполняться в порядке их добавления

<bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl"> 
     <property name="inInterceptors"> 
      <ref bean="MyInterceptor"/> 
      <ref bean="OtherInterceptor"/> 
     </property> 
     <property name="outInterceptors"> 
      <ref bean="MyInterceptor"/> 
     </property> 
    </bean> 

MyInterceptor (1) -> OtherInterceptor (2)

Смежные вопросы