Java tutorial
package com.orange.clara.pivotaltrackermirror.controllers; import com.orange.clara.pivotaltrackermirror.model.response.ErrorJson; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.web.ErrorAttributes; import org.springframework.boot.autoconfigure.web.ErrorController; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Map; /** * Copyright (C) 2016 Orange * <p> * This software is distributed under the terms and conditions of the 'Apache-2.0' * license which can be found in the file 'LICENSE' in this package distribution * or at 'https://opensource.org/licenses/Apache-2.0'. * <p> * Author: Arthur Halet * Date: 13/07/2016 */ @RestController public class CustomErrorController implements ErrorController { private static final String PATH = "/error"; @Autowired @Qualifier("debugTraceController") private boolean debug; @Autowired private ErrorAttributes errorAttributes; @RequestMapping(value = PATH) ErrorJson error(HttpServletRequest request, HttpServletResponse response) { return new ErrorJson(response.getStatus(), getErrorAttributes(request, debug)); } @Override public String getErrorPath() { return PATH; } private Map<String, Object> getErrorAttributes(HttpServletRequest request, boolean includeStackTrace) { RequestAttributes requestAttributes = new ServletRequestAttributes(request); return errorAttributes.getErrorAttributes(requestAttributes, includeStackTrace); } }