2016-10-18 58 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)