@Override public boolean handleFault(SOAPMessageContext context) { if (!shouldExecute(context)) { return true; } final Span span = tracingPlugin.getTracer().scopeManager().active().span(); Tags.ERROR.set(span, Boolean.TRUE); try { final SOAPFault fault = context.getMessage().getSOAPBody().getFault(); span.setTag("soap.fault.reason", fault.getFaultString()); span.setTag("soap.fault.code", fault.getFaultCode()); } catch (SOAPException e) { logger.warn("Exception while trying to access SOAP fault (this exception was suppressed)", e); } return true; }
/** Returns the fault for the given body, if any. */ @Override public SOAPFault getFault(SOAPBody body) { return body.getFault(); }
@Override public SOAPFault getFault(SOAPBody body) { return body.getFault(); }
@Override public SOAPFault getFault(SOAPBody body) { return body.getFault(); }
public static boolean isFaultMessage(final SOAPMessage msg) { try { return msg.getSOAPBody().getFault() != null; } catch (final Exception ignore) { } return false; }
@Override public Soap11Fault getFault() { SOAPFault fault = getSaajBody().getFault(); return fault != null ? new SaajSoap11Fault(fault) : null; }
@Override public Soap11Fault getFault() { SOAPFault fault = getSaajBody().getFault(); return fault != null ? new SaajSoap11Fault(fault) : null; }
@Override public Soap12Fault getFault() { SOAPFault fault = getSaajBody().getFault(); return fault != null ? new SaajSoap12Fault(fault) : null; }
@Override public Soap12Fault getFault() { SOAPFault fault = getSaajBody().getFault(); return fault != null ? new SaajSoap12Fault(fault) : null; }
@Override public Soap11Fault getFault() { SOAPFault fault = getSaajBody().getFault(); return fault != null ? new SaajSoap11Fault(fault) : null; }
@Override public Soap12Fault getFault() { SOAPFault fault = getSaajBody().getFault(); return fault != null ? new SaajSoap12Fault(fault) : null; }
public boolean handleFault(SOAPMessageContext context) { SOAPMessage m = context.getMessage(); if(m != null) { SOAPBody body = m.getSOAPBody(); SOAPFault fault = body.getFault(); setAbcFault(fault, context); } } private void setAbcFault(SOAPFault fault, MessageContext context) { ByteArrayInputStream bis = (ByteArrayInputStream)context.get("TRANSPORT_IN"); // do sax parsing on the input stream fault.setFaultCode(abcFaultCodeQName); fault.setFaultString(abcFaultString); }
/* * soapXMLtoEndpoint sends the soapXMLFileLocation to the endpointURL */ public void soapXMLtoEndpoint(String endpointURL, String soapXMLFileLocation) throws SOAPException { SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection(); SOAPMessage response = connection.call(xmlStringToSOAPMessage(soapXMLFileLocation), endpointURL); connection.close(); SOAPBody responseBody = response.getSOAPBody(); SOAPBodyElement responseElement = (SOAPBodyElement) responseBody.getChildElements().next(); SOAPElement returnElement = (SOAPElement) responseElement.getChildElements().next(); if (responseBody.getFault() != null) { System.out.println("fault != null"); System.out.println(returnElement.getValue() + " " + responseBody.getFault().getFaultString()); } else { serverResponse = returnElement.getValue(); System.out.println(serverResponse); System.out.println("\nfault == null, got the response properly.\n"); } }
private CallErrorMessage parseError() { CallErrorMessage message = new CallErrorMessage(); String id = getElementValue(HEADER_RELATESTO); message.setId(id); try { SOAPFault fault = soapMessage.getSOAPBody().getFault(); if (fault.getFaultSubcodes().hasNext()) message.setErrorCode(((QName) fault.getFaultSubcodes().next()).getLocalPart()); if (fault.getFaultReasonTexts().hasNext()) message.setErrorDescription(fault.getFaultReasonTexts().next().toString()); } catch (SOAPException e) { logger.error("Parse error", e); } return message; }
final SOAPMessage msg = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL) .createMessage(new MimeHeaders(), new ByteArrayInputStream(yourSoapMessageWithFault.getBytes())); if (msg != null) { SOAPEnvelope env = msg.getSOAPPart().getEnvelope(); SOAPBody body = env.getBody(); if (body != null && body.hasFault()) { final SOAPFault fault = body.getFault(); final DetailEntry entry = (DetailEntry)fault.getDetail().getDetailEntries().next(); //now UNMarshall this entry to your custom exception class.
public void callWebService() throws SOAPException, IOException { SOAPMessage request = createEchoRequest(); SOAPConnection connection = connectionFactory.createConnection(); SOAPMessage response = connection.call(request, url); if (!response.getSOAPBody().hasFault()) { writeEchoResponse(response); } else { SOAPFault fault = response.getSOAPBody().getFault(); System.err.println("Received SOAP Fault"); System.err.println("SOAP Fault Code :" + fault.getFaultCode()); System.err.println("SOAP Fault String :" + fault.getFaultString()); } }
@Override public boolean handleFault(SOAPMessageContext context) { SOAPMessage message = context.getMessage(); SOAPBody body = message.getSOAPBody(); SOAPFault fault = body.getFault(); String code = fault.getFaultCode(); String faultString = fault.getFaultString(); Detail detail = fault.getDetail(); if(detail!=null){ Iterator<SOAPElement> iter = detail.getChildElements(); //Getting first level of detail HashMap<String, String> detailMap = new HashMap<String, String>(); while(iter.hasNext()){ SOAPElement element = iter.next(); detailMap.put(element.getLocalName(), element.getValue()); } //Logging or whatever } } return true;
@Override protected void done() { if (!isCancelled()) { try { SOAPMessage msg = get(); if (msg.getSOAPBody().hasFault()) { op.setResponseDocument(msg.getSOAPBody().getFault().getOwnerDocument()); } else { op.setResponseDocument(msg.getSOAPBody().extractContentAsDocument()); } } catch (CancellationException cancelled) { // it was aborted, nothing to do since the // abort method sets the state } catch (ExecutionException e) { //something went awry op.fail(e.getCause()); } catch (Exception e) { //something went awry op.fail(e); } } } }
public boolean handleFault(SOAPMessageContext ctx) { methodCalled("handleFault"); printHandlerInfo("handleFault", isOutbound(ctx)); if (isServerSideHandler()) { if (!"soapHandler4".equals(getHandlerId())) { return true; } try { SOAPMessage msg = ctx.getMessage(); String fs = msg.getSOAPPart().getEnvelope().getBody().getFault().getFaultString(); if ("soapHandler4HandleFaultThrowsRunException".equals(fs)) { throw new RuntimeException("soapHandler4 HandleFault throws RuntimeException"); } else if ("soapHandler4HandleFaultThrowsSOAPFaultException".equals(fs)) { throw createSOAPFaultException("soapHandler4 HandleFault throws SOAPFaultException"); } } catch (SOAPException e) { // do nothing } } return true; }
private void alterSoapEnvelope(SaajSoapMessage soapResponse) { try { SOAPMessage soapMessage = soapResponse.getSaajMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPHeader header = soapMessage.getSOAPHeader(); SOAPBody body = soapMessage.getSOAPBody(); SOAPFault fault = body.getFault(); envelope.removeNamespaceDeclaration(envelope.getPrefix()); envelope.addNamespaceDeclaration(PREFERRED_PREFIX, SOAP_ENV_NAMESPACE); envelope.setPrefix(PREFERRED_PREFIX); header.setPrefix(PREFERRED_PREFIX); body.setPrefix(PREFERRED_PREFIX); if (fault != null) { fault.setPrefix(PREFERRED_PREFIX); } } catch (SOAPException e) { e.printStackTrace(); } }