Search in sources :

Example 11 with OwsServiceResponse

use of org.n52.shetland.ogc.ows.service.OwsServiceResponse in project arctic-sea by 52North.

the class GenericRequestOperator method receiveRequest.

@Override
public OwsServiceResponse receiveRequest(final OwsServiceRequest abstractRequest) throws OwsExceptionReport {
    this.eventBus.submit(new RequestEvent(abstractRequest));
    if (requestType.isAssignableFrom(abstractRequest.getClass())) {
        Q request = requestType.cast(abstractRequest);
        checkForModifierAndProcess(request);
        this.validator.validate(request);
        A response = receive(request);
        this.eventBus.submit(new ResponseEvent(response));
        checkForModifierAndProcess(request, response);
        return response;
    } else {
        throw new OperationNotSupportedException(abstractRequest.getOperationName());
    }
}
Also used : OperationNotSupportedException(org.n52.shetland.ogc.ows.exception.OperationNotSupportedException) RequestEvent(org.n52.iceland.event.events.RequestEvent) ResponseEvent(org.n52.iceland.event.events.ResponseEvent)

Example 12 with OwsServiceResponse

use of org.n52.shetland.ogc.ows.service.OwsServiceResponse in project arctic-sea by 52North.

the class SimpleBinding method encodeResponse.

protected Object encodeResponse(OwsServiceResponse response, MediaType contentType) throws OwsExceptionReport {
    try {
        OperationResponseEncoderKey key = new OperationResponseEncoderKey(new OwsOperationKey(response), contentType);
        Encoder<Object, OwsServiceResponse> encoder = getEncoder(key);
        if (encoder == null) {
            throw new NoEncoderForKeyException(key);
        }
        return encoder.encode(response);
    } catch (EncodingException ex) {
        throw new NoApplicableCodeException().withMessage(ex.getMessage()).causedBy(ex);
    }
}
Also used : NoEncoderForKeyException(org.n52.svalbard.encode.exception.NoEncoderForKeyException) EncodingException(org.n52.svalbard.encode.exception.EncodingException) OwsEncodingException(org.n52.iceland.coding.encode.OwsEncodingException) NoApplicableCodeException(org.n52.shetland.ogc.ows.exception.NoApplicableCodeException) OperationResponseEncoderKey(org.n52.svalbard.encode.OperationResponseEncoderKey) OwsOperationKey(org.n52.shetland.ogc.ows.service.OwsOperationKey) OwsServiceResponse(org.n52.shetland.ogc.ows.service.OwsServiceResponse)

Example 13 with OwsServiceResponse

use of org.n52.shetland.ogc.ows.service.OwsServiceResponse in project arctic-sea by 52North.

the class JSONBinding method doPostOperation.

@Override
public void doPostOperation(HttpServletRequest req, HttpServletResponse res) throws HTTPException, IOException {
    OwsServiceRequest request = null;
    try {
        request = parseRequest(req);
        checkServiceOperatorKeyTypes(request);
        OwsServiceResponse response = getServiceOperator(request).receiveRequest(request);
        writeResponse(req, res, response);
    } catch (OwsExceptionReport oer) {
        oer.setVersion(request != null ? request.getVersion() : null);
        LOG.warn("Unexpected error", oer);
        writeOwsExceptionReport(req, res, oer);
    }
}
Also used : OwsServiceRequest(org.n52.shetland.ogc.ows.service.OwsServiceRequest) OwsServiceResponse(org.n52.shetland.ogc.ows.service.OwsServiceResponse) OwsExceptionReport(org.n52.shetland.ogc.ows.exception.OwsExceptionReport)

Example 14 with OwsServiceResponse

use of org.n52.shetland.ogc.ows.service.OwsServiceResponse in project arctic-sea by 52North.

the class KvpBinding method doGetOperation.

@Override
public void doGetOperation(HttpServletRequest req, HttpServletResponse res) throws HTTPException, IOException {
    LOGGER.debug("KVP-REQUEST: {}", req.getQueryString());
    OwsServiceRequest serviceRequest = null;
    try {
        serviceRequest = parseRequest(req);
        // add request context information
        serviceRequest.setRequestContext(getRequestContext(req));
        OwsServiceResponse response = getServiceOperator(serviceRequest).receiveRequest(serviceRequest);
        writeResponse(req, res, response);
    } catch (OwsExceptionReport oer) {
        oer.setVersion(serviceRequest != null ? serviceRequest.getVersion() : null);
        writeOwsExceptionReport(req, res, oer);
    }
}
Also used : OwsServiceRequest(org.n52.shetland.ogc.ows.service.OwsServiceRequest) OwsServiceResponse(org.n52.shetland.ogc.ows.service.OwsServiceResponse) OwsExceptionReport(org.n52.shetland.ogc.ows.exception.OwsExceptionReport)

Example 15 with OwsServiceResponse

use of org.n52.shetland.ogc.ows.service.OwsServiceResponse in project arctic-sea by 52North.

the class AbstractSoapEncoder method getBodyContent.

/**
 * Get the content for the SOAPBody as {@link XmlObject}
 *
 * @param response SOAP response
 *
 * @return SOAPBody content as {@link XmlObject}
 *
 * @throws EncodingException If no encoder is available, the object to encode is not supported or an error occurs
 *                           during the encoding
 */
protected XmlObject getBodyContent(SoapResponse response) throws EncodingException {
    OperationResponseEncoderKey key = new OperationResponseEncoderKey(new OwsOperationKey(response.getBodyContent()), MediaTypes.APPLICATION_XML);
    Encoder<Object, OwsServiceResponse> encoder = getEncoder(key);
    if (encoder == null) {
        throw new NoEncoderForKeyException(key);
    }
    return (XmlObject) encoder.encode(response.getBodyContent());
}
Also used : NoEncoderForKeyException(org.n52.svalbard.encode.exception.NoEncoderForKeyException) XmlObject(org.apache.xmlbeans.XmlObject) XmlObject(org.apache.xmlbeans.XmlObject) OwsOperationKey(org.n52.shetland.ogc.ows.service.OwsOperationKey) OwsServiceResponse(org.n52.shetland.ogc.ows.service.OwsServiceResponse)

Aggregations

OwsServiceResponse (org.n52.shetland.ogc.ows.service.OwsServiceResponse)11 XmlObject (org.apache.xmlbeans.XmlObject)5 OwsExceptionReport (org.n52.shetland.ogc.ows.exception.OwsExceptionReport)4 OwsOperationKey (org.n52.shetland.ogc.ows.service.OwsOperationKey)4 OwsServiceRequest (org.n52.shetland.ogc.ows.service.OwsServiceRequest)4 NoEncoderForKeyException (org.n52.svalbard.encode.exception.NoEncoderForKeyException)3 OperationNotSupportedException (org.n52.shetland.ogc.ows.exception.OperationNotSupportedException)2 OperationResponseEncoderKey (org.n52.svalbard.encode.OperationResponseEncoderKey)2 EncodingException (org.n52.svalbard.encode.exception.EncodingException)2 IOException (java.io.IOException)1 LinkedList (java.util.LinkedList)1 GetResultResponseType (net.opengis.sos.x20.GetResultResponseType)1 GetResultTemplateResponseType (net.opengis.sos.x20.GetResultTemplateResponseType)1 XmlOptions (org.apache.xmlbeans.XmlOptions)1 XmlString (org.apache.xmlbeans.XmlString)1 OwsEncodingException (org.n52.iceland.coding.encode.OwsEncodingException)1 RequestResponseModifier (org.n52.iceland.convert.RequestResponseModifier)1 RequestEvent (org.n52.iceland.event.events.RequestEvent)1 ResponseEvent (org.n52.iceland.event.events.ResponseEvent)1 RequestOperator (org.n52.iceland.request.operator.RequestOperator)1