f.setMessage(ex.getMessage()); } catch (Exception nex) { if (nex instanceof Fault) {
@Override public void handleFault(SoapMessage message) { // Every exception will be wrapped into a Fault object by CXF Fault f = (Fault) message.getContent(Exception.class); // You should inspect its g.getCause() to maybe identify what went wrong // A CXF Fault also much ressembles a SOAPFault element f.setMessage("Your SOAP Fault message"); // You can access the DOM detail of the fault Element detail = f.getOrCreateDetail(); Element newDetailEntry = detail.getOwnerDocument().createElementNS("detailNs", "detailName"); newDetailEntry.setTextContent("Content for your soap fault detail"); detail.appendChild(newDetailEntry); // And so on. f.setFaultCode(qName);... }
public class CustomSoapFaultOutInterceptor extends AbstractSoapInterceptor { private static final Log logger = LogFactory.getLog(CustomSoapFaultOutInterceptor.class); public CustomSoapFaultOutInterceptor() { super(Phase.MARSHAL); getAfter().add(Soap11FaultOutInterceptor.class.getName()); } @Override public void handleMessage(SoapMessage message) throws Fault { Fault fault = (Fault) message.getContent(Exception.class); logger.error(fault.getMessage(), fault); //delete the Mule Exception to have the one throw by the component in the SoapMessage Throwable t = getOriginalCause(fault.getCause()); fault.setMessage(t.getMessage()); } private Throwable getOriginalCause(Throwable t) { if (t.getCause() == null || t.getCause().equals(t)) return t; else return getOriginalCause(t.getCause()); } } //And then this into mule-config. <cxf:jaxws-service> <cxf:outFaultInterceptors> <spring:bean class="is.tr.mule.interceptor.CustomSoapFaultOutInterceptor"/> </cxf:outFaultInterceptors> </cxf:jaxws-service>
fault.setMessage(t.getClass().getSimpleName());
public static void buildWeatherFaultAndSet2SoapMessage(SoapMessage message, FaultConst faultContent) { Fault exceptionFault = (Fault) message.getContent(Exception.class); String originalFaultMessage = exceptionFault.getMessage(); exceptionFault.setMessage(faultContent.getMessage()); exceptionFault.setDetail(createFaultDetailWithWeatherException(originalFaultMessage, faultContent)); message.setContent(Exception.class, exceptionFault); }
public void buildCustomFaultAndSet2SoapMessage(SoapMessage message, FaultType faultType) { Fault exceptionFault = (Fault) message.getContent(Exception.class); // Preserve original FaultMessage for later need String originalFaultMessage = getMessageValueIfThere(exceptionFault); exceptionFault.setMessage(customFaultBuilder.createCustomFaultMessage(faultType)); exceptionFault.setDetail(createFaultDetailWithCustomException(originalFaultMessage, faultType)); message.setContent(Exception.class, exceptionFault); }
public static void buildWeatherFaultAndSet2SoapMessage(SoapMessage message, FaultConst faultContent) { Fault exceptionFault = (Fault) message.getContent(Exception.class); String originalFaultMessage = exceptionFault.getMessage(); exceptionFault.setMessage(faultContent.getMessage()); exceptionFault.setDetail(createFaultDetailWithWeatherException(originalFaultMessage, faultContent)); message.setContent(Exception.class, exceptionFault); }
"Fault occured", (ResourceBundle) null)); if (exchange.getProperty("faultstring") != null) { f.setMessage((String)exchange.getProperty("faultstring")); f.setDetail(details); if (exchange.getProperty("faultstring") != null) { f.setMessage((String)exchange.getProperty("faultstring")); } else { if (reason != null && reason.item(0) != null && ((Element)reason.item(0)).getTextContent() != null) { f.setMessage(((Element)reason.item(0)).getTextContent());
f.setMessage(ex.getMessage());
f.setMessage(ex.getMessage()); } catch (Exception nex) { if (nex instanceof Fault) {
f.setMessage(ex.getMessage()); } catch (Exception fex) {
f.setMessage(ex.getMessage()); } catch (Exception fex) {
f.setMessage(ex.getMessage()); } catch (Exception fex) {
f.setMessage(ex.getMessage()); } catch (Exception fex) {