Hello All,
I am using CXF 2.2.4-SNAPSHOT and running into a strange issue.
I have a custom interceptor that does not do anything other than throw a
fault if it has one as a content of the incoming message. I am trying to
execute it BEFORE DocLiteralInInterceptor but AFTER URIMappingInterceptor in
UNMARSHAL phase.
This is how I am adding it for for some reason it does not fire (it is being
skipped):
public class TestFaultThrowingInterceptor extends
AbstractPhaseInterceptor<Message> {
public TestFaultThrowingInterceptor() {
super(Phase.UNMARSHAL);
addAfter(URIMappingInterceptor.class.getName());
addBefore(DocLiteralInInterceptor.class.getName());
}
public void handleMessage(Message message) throws Fault {
// Obtain the fault from the previous phases
Fault fault = (Fault) message.getContent(Exception.class);
if (fault != null) {
throw fault;
}
}
}
<jaxws:endpoint
id="testService"
implementor="testServiceImpl"
wsdlLocation="wsdl/v29/testService.wsdl"
address="/v29/testService">
<jaxws:properties>
<entry key="schema-validation-enabled" value="false" />
</jaxws:properties>
<jaxws:inInterceptors>
<ref bean="testInterceptor" />
<ref bean="testFaultThrowingInterceptor" />
</jaxws:inInterceptors>
</jaxws:endpoint>
However, I've been debugging the code including the Interceptor Chain, but
not sure why my custom interceptor does not fire. After the
URIMappingInterceptor the execution in the chain goes straight to the
DocLiteralInInterceptor. Any ideas how I can invoke my interceptor?
Thanks.
Arik.