@Override public DetailEntry addDetailEntry(Detail detail, QName name) throws SOAPException { return detail.addDetailEntry(name); }
@Override public DetailEntry addDetailEntry(Detail detail, QName name) throws SOAPException { Name detailEntryName = SaajUtils.toName(name, detail); return detail.addDetailEntry(detailEntryName); }
@Override public DetailEntry addDetailEntry(Detail detail, QName name) throws SOAPException { Name detailEntryName = SaajUtils.toName(name, detail); return detail.addDetailEntry(detailEntryName); }
private static void setFaultDetail(SOAPFault fault, Throwable cause) { try { //Add Detail element to the fault. Detail detail = fault.addDetail(); QName name = new QName("https://xwss.dev.java.net", "FaultDetail", "xwssfault"); DetailEntry entry = detail.addDetailEntry(name); String exception = "Cause Not Set"; if (cause != null) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); PrintWriter s = new PrintWriter(bos); cause.printStackTrace(s); s.flush(); exception = bos.toString(); } entry.addTextNode(exception); } catch (SOAPException ex) { //ignore for now } } }
/** * Generates a SOAP 1.1 or 1.2 Fault based on binding id and Exception passed. * * @param th The Exception * @param bindingId SOAPBinding type * @param detail Fault detail QName * @return The SOAP Fault * @throws SOAPException If the Fault could not be generated */ public static SOAPFault createFault(final Throwable th, final String bindingId, final QName detail) throws SOAPException { SOAPFault fault = null; if (bindingId.equals(SOAPBinding.SOAP12HTTP_BINDING) || bindingId.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING)) { fault = createSOAP12Fault(th); } else { fault = createSOAP11Fault(th); } if (detail != null) { fault.addDetail().addDetailEntry(detail); } return fault; }
@Override public SoapFaultDetailElement addFaultDetailElement(QName name) { try { DetailEntry detailEntry = getSaajDetail().addDetailEntry(name); return new SaajSoapFaultDetailElement(detailEntry); } catch (SOAPException ex) { throw new SaajSoapFaultException(ex); } }
@Override public SoapFaultDetailElement addFaultDetailElement(QName name) { try { DetailEntry detailEntry = getSaajDetail().addDetailEntry(name); return new SaajSoapFaultDetailElement(detailEntry); } catch (SOAPException ex) { throw new SaajSoapFaultException(ex); } }
/** * Generates a SOAP 1.1 or 1.2 Fault based on binding id and Exception passed. * * @param th The Exception * @param bindingId SOAPBinding type * @param detail Fault detail QName * @return The SOAP Fault * @throws SOAPException If the Fault could not be generated */ public static SOAPFault createFault(final Throwable th, final String bindingId, final QName detail) throws SOAPException { SOAPFault fault = null; if (bindingId.equals(SOAPBinding.SOAP12HTTP_BINDING) || bindingId.equals(SOAPBinding.SOAP12HTTP_MTOM_BINDING)) { fault = createSOAP12Fault(th); } else { fault = createSOAP11Fault(th); } if (detail != null) { fault.addDetail().addDetailEntry(detail); } return fault; }
@Override public SoapFaultDetailElement addFaultDetailElement(QName name) { try { DetailEntry detailEntry = getSaajDetail().addDetailEntry(name); return new SaajSoapFaultDetailElement(detailEntry); } catch (SOAPException ex) { throw new SaajSoapFaultException(ex); } }
// Create a new SOAP 1.2 message from the message factory and obtain the SOAP body MessageFactory factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); SOAPMessage message = factory.createMessage(); SOAPBody soapBody = message.getSOAPPart().getEnvelope().getBody(); // get the fault SOAPFault fault = soapBody.addFault(); // since this is an error generated from the business application // where SOAPValue is the standard value code "Sender|Reciever...etc" QName faultName = new QName(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, SOAPValue); fault.setFaultCode(faultName); // set the fault reason text // where languageLocale is the passed language local, the Locale object can be used fault.addFaultReasonText(errorMessage, languageLocale); // generate the detail Detail detail = fault.addDetail(); // add the error code entry QName customCodeEntryName = new QName("http://www.example.com/", "customCode", "ns1"); DetailEntry customCodeEntry = detail.addDetailEntry(customCodeEntryName); customCodeEntry.addTextNode("this is custom 123 code"); // throw the exception that shall generate the SOAP fault response XML message throw new SOAPFaultException(fault);
/** * Creates a new, generic SOAP fault to be used when something goes wrong in a partner track and * other tracks must be notified. * * @return */ public static String generateGenericSOAPFault() { try { MessageFactory mFactory= MessageFactory.newInstance(); SOAPMessage message= mFactory.createMessage(); SOAPBody body= message.getSOAPBody(); SOAPFault fault= body.addFault( BPELUnitConstants.SOAP_FAULT_CODE_CLIENT, BPELUnitConstants.SOAP_FAULT_DESCRIPTION); Detail detail= fault.addDetail(); DetailEntry entry= detail.addDetailEntry(new QName("http://www.bpelunit.org/framework/error", "BPELUnitFault")); entry.addTextNode("The BPELUnit test framework has detected a test failure or error. This test case is aborted."); ByteArrayOutputStream b= new ByteArrayOutputStream(); message.writeTo(b); return b.toString(); } catch (Exception e) { return "(internal fault)"; } }
Detail detail = fault.addDetail(); Name entryName = envelope.createName("message"); DetailEntry entry = detail.addDetailEntry(entryName); entry.addTextNode("The server is not able to complete the request. Internal error.");
private SOAPFaultException createSOAPFaultExceptionWithDetail(String faultString) throws SOAPException { SOAPFault fault = SOAPFactory.newInstance().createFault(); QName faultName = new QName(SOAPConstants.URI_NS_SOAP_ENVELOPE, "Server"); SAAJUtils.setFaultCode(fault, faultName); fault.setFaultActor("http://gizmos.com/orders"); fault.setFaultString(faultString); Detail detail = fault.addDetail(); QName entryName = new QName("http://gizmos.com/orders/", "order", "PO"); DetailEntry entry = detail.addDetailEntry(entryName); entry.addTextNode("Quantity element does not have a value"); QName entryName2 = new QName("http://gizmos.com/orders/", "order", "PO"); DetailEntry entry2 = detail.addDetailEntry(entryName2); entry2.addTextNode("Incomplete address: no zip code"); return new SOAPFaultException(fault); }
DetailEntry de = detail.addDetailEntry(qName);
DetailEntry de = detail.addDetailEntry(qName);
soapFault.addDetail().addDetailEntry(CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME).addTextNode(WSCLogger.i18NLogger.get_wsc11_messaging_ActivationCoordinatorProcessorImpl_1()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(CoordinationConstants.WSCOOR_ERROR_CODE_CANNOT_CREATE_CONTEXT_QNAME).addTextNode(th.getMessage()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME).addTextNode(WSCLogger.i18NLogger.get_wsc11_messaging_ActivationCoordinatorProcessorImpl_1()); throw new SOAPFaultException(soapFault);
soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_6()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.TRANSACTIONROLLEDBACK_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_7()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_8()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_8()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_6()); throw new SOAPFaultException(soapFault);
soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_6()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_7()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_7()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_10()); throw new SOAPFaultException(soapFault);
soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_6()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_7()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_7()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_CompletionCoordinatorProcessorImpl_10()); throw new SOAPFaultException(soapFault);
soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_12()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_13()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_13()); throw new SOAPFaultException(soapFault); soapFault.addDetail().addDetailEntry(ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME).addTextNode(WSTLogger.i18NLogger.get_wst11_messaging_TerminationCoordinatorProcessorImpl_12()); throw new SOAPFaultException(soapFault);