Search in sources :

Example 1 with FaultDocument

use of org.w3.x2003.x05.soapEnvelope.FaultDocument in project arctic-sea by 52North.

the class Soap12Encoder method createSOAP12FaultFromExceptionResponse.

// see
// http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#FAQ300
// for more details
private XmlObject createSOAP12FaultFromExceptionResponse(final OwsExceptionReport owsExceptionReport) throws EncodingException {
    final FaultDocument faultDoc = FaultDocument.Factory.newInstance();
    final Fault fault = faultDoc.addNewFault();
    final Faultcode code = fault.addNewCode();
    code.setValue(SOAPConstants.SOAP_SENDER_FAULT);
    // 19.2.3 SOAP 1.2 Fault Binding
    if (!owsExceptionReport.getExceptions().isEmpty()) {
        final CodedException firstException = owsExceptionReport.getExceptions().get(0);
        final Subcode subcode = code.addNewSubcode();
        QName qName;
        if (firstException.getCode() != null) {
            qName = OwsHelper.getQNameForLocalName(firstException.getCode().toString());
        } else {
            qName = OwsHelper.getQNameForLocalName(OwsExceptionCode.NoApplicableCode.name());
        }
        subcode.setValue(qName);
        final Reasontext addNewText = fault.addNewReason().addNewText();
        addNewText.setLang(Locale.ENGLISH.getLanguage());
        addNewText.setStringValue(SoapHelper.getSoapFaultReasonText(firstException.getCode()));
        fault.addNewDetail().set(encodeObjectToXml(OWSConstants.NS_OWS, firstException, EncodingContext.of(XmlBeansEncodingFlags.ENCODE_OWS_EXCEPTION_ONLY)));
    }
    return faultDoc;
}
Also used : Faultcode(org.w3.x2003.x05.soapEnvelope.Faultcode) Subcode(org.w3.x2003.x05.soapEnvelope.Subcode) FaultDocument(org.w3.x2003.x05.soapEnvelope.FaultDocument) Reasontext(org.w3.x2003.x05.soapEnvelope.Reasontext) CodedException(org.n52.shetland.ogc.ows.exception.CodedException) QName(javax.xml.namespace.QName) SoapFault(org.n52.shetland.w3c.soap.SoapFault) Fault(org.w3.x2003.x05.soapEnvelope.Fault)

Example 2 with FaultDocument

use of org.w3.x2003.x05.soapEnvelope.FaultDocument in project arctic-sea by 52North.

the class Soap12Encoder method createSOAP12Fault.

private XmlObject createSOAP12Fault(final SoapFault soapFault) {
    final FaultDocument faultDoc = FaultDocument.Factory.newInstance();
    final Fault fault = faultDoc.addNewFault();
    fault.addNewCode().setValue(soapFault.getFaultCode());
    final Reasontext addNewText = fault.addNewReason().addNewText();
    addNewText.setLang(soapFault.getLocale().getDisplayLanguage());
    addNewText.setStringValue(soapFault.getFaultReason());
    if (soapFault.getDetailText() != null) {
        final XmlString xmlString = XmlString.Factory.newInstance();
        xmlString.setStringValue(soapFault.getDetailText());
        fault.addNewDetail().set(xmlString);
    }
    return faultDoc;
}
Also used : FaultDocument(org.w3.x2003.x05.soapEnvelope.FaultDocument) Reasontext(org.w3.x2003.x05.soapEnvelope.Reasontext) XmlString(org.apache.xmlbeans.XmlString) SoapFault(org.n52.shetland.w3c.soap.SoapFault) Fault(org.w3.x2003.x05.soapEnvelope.Fault)

Aggregations

SoapFault (org.n52.shetland.w3c.soap.SoapFault)2 Fault (org.w3.x2003.x05.soapEnvelope.Fault)2 FaultDocument (org.w3.x2003.x05.soapEnvelope.FaultDocument)2 Reasontext (org.w3.x2003.x05.soapEnvelope.Reasontext)2 QName (javax.xml.namespace.QName)1 XmlString (org.apache.xmlbeans.XmlString)1 CodedException (org.n52.shetland.ogc.ows.exception.CodedException)1 Faultcode (org.w3.x2003.x05.soapEnvelope.Faultcode)1 Subcode (org.w3.x2003.x05.soapEnvelope.Subcode)1