Section 10.2.2.3 of JAX-WS 2.2 spec has a footnote that says:
If the exception is a SOAPFaultException or has a cause that is a SOAPFaultException.
Currently CXF only checks if the thrown exception is of the exact type (i.e. not a subtype of) SOAPFaultException. We need to check all causes and may as well use instanceof rather than ex.getClass().equals(SOAPFaultException.class) in WebFaultOutInterceptor.