#java #cxf #interceptor
#java #cxf #перехватчик
Вопрос:
Я создал перехватчик, который будет выполнять свою специфическую логику для составного запроса для фазы UNMARSHAL, для этой фазы существует совершенно другой перехватчик 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)