use of org.n52.iceland.exception.HTTPException in project arctic-sea by 52North.
the class Service method onHttpException.
protected void onHttpException(HttpServletRequest request, HttpServletResponse response, HTTPException exception) throws IOException {
this.serviceEventBus.submit(new ExceptionEvent(exception));
response.sendError(exception.getStatus().getCode(), exception.getMessage());
}
use of org.n52.iceland.exception.HTTPException in project arctic-sea by 52North.
the class Service method delete.
@RequestMapping(method = RequestMethod.DELETE)
public void delete(HttpServletRequest request, HttpServletResponse response) throws IOException {
Stopwatch stopwatch = Stopwatch.createStarted();
long currentCount = logRequest(request);
try {
getBinding(request).doDeleteOperation(request, response);
} catch (HTTPException exception) {
onHttpException(request, response, exception);
} finally {
logResponse(request, response, currentCount, stopwatch);
}
}
use of org.n52.iceland.exception.HTTPException in project arctic-sea by 52North.
the class HttpUtils method writeObject.
private void writeObject(HttpServletRequest request, HttpServletResponse response, MediaType contentType, Writable writable, EncodingExceptionHandler owserHandler) throws IOException, HTTPException {
OutputStream out = null;
response.setContentType(writable.getEncodedContentType().toString());
try {
out = response.getOutputStream();
if (HTTPHeaders.supportsGzipEncoding(request) && writable.supportsGZip()) {
out = new GZIPOutputStream(out);
response.setHeader(HTTPHeaders.CONTENT_ENCODING, HTTPConstants.GZIP_ENCODING);
}
if (isCountingOutputStream) {
out = new CountingOutputStream(out);
}
if (writable.hasForcedHttpStatus()) {
response.setStatus(writable.getForcedHttpStatus().getCode());
}
writable.write(out, new ResponseProxy(response));
out.flush();
} catch (EncodingException e) {
Object writeOwsExceptionReport = owserHandler.handleEncodingException(request, response, e);
if (writeOwsExceptionReport != null) {
Writable owserWritable = getWritable(writeOwsExceptionReport, contentType);
try {
owserWritable.write(out, new ResponseProxy(response));
if (out != null) {
out.flush();
}
} catch (EncodingException ex) {
throw new HTTPException(HTTPStatus.INTERNAL_SERVER_ERROR, ex);
}
}
} finally {
if (out instanceof CountingOutputStream) {
Long bytesWritten = ((CountingOutputStream) out).getCount();
eventBus.submit(new CountingOutputStreamEvent(bytesWritten));
}
if (out != null) {
LOGGER.debug("Response status = " + response.getStatus());
out.close();
}
}
}
use of org.n52.iceland.exception.HTTPException in project arctic-sea by 52North.
the class Service method get.
@RequestMapping(method = RequestMethod.GET)
public void get(HttpServletRequest request, HttpServletResponse response) throws IOException {
Stopwatch stopwatch = Stopwatch.createStarted();
long currentCount = logRequest(request);
try {
getBinding(request).doGetOperation(request, response);
} catch (HTTPException exception) {
onHttpException(request, response, exception);
} finally {
logResponse(request, response, currentCount, stopwatch);
}
}
use of org.n52.iceland.exception.HTTPException in project arctic-sea by 52North.
the class Service method post.
@RequestMapping(method = RequestMethod.POST)
public void post(HttpServletRequest request, HttpServletResponse response) throws IOException {
Stopwatch stopwatch = Stopwatch.createStarted();
long currentCount = logRequest(request);
try {
getBinding(request).doPostOperation(request, response);
} catch (HTTPException exception) {
onHttpException(request, response, exception);
} finally {
logResponse(request, response, currentCount, stopwatch);
}
}
Aggregations