Java tutorial
/** * Copyright 2015 DFKI GmbH. All Rights Reserved. Use is subject to license * terms. * * This file is part of MARY TTS. * * MARY TTS is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, version 3 of the License. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package marytts.http.controllers; import javax.servlet.http.HttpServletRequest; import marytts.http.response.ErrorResponse; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.web.ErrorController; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("${error.path:/error}") public class MaryErrorController implements ErrorController { @Value("${error.path:/error}") private String errorPath; @Override public String getErrorPath() { return this.errorPath; } @RequestMapping @ResponseBody public ResponseEntity<Object> error(HttpServletRequest request) { HttpStatus status = getStatus(request); return new ResponseEntity<Object>(new ErrorResponse(status.value(), status.name()), status); } private HttpStatus getStatus(HttpServletRequest request) { Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); if (statusCode == null) { return HttpStatus.INTERNAL_SERVER_ERROR; } return HttpStatus.valueOf(statusCode); } }