我正在使用Spring Boot创建API,因此希望禁用/error映射。
/error
我在application.properties中设置了以下道具:
server.error.whitelabel.enabled=false spring.mvc.throw-exception-if-no-handler-found=true spring.resources.add-mappings=false
但是,当我击中/error我得到:
HTTP/1.1 500 Internal Server Error Server: Apache-Coyote/1.1 Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Wed, 03 Aug 2016 15:15:31 GMT Connection: close {"timestamp":1470237331487,"status":999,"error":"None","message":"No message available"}
所需结果
HTTP/1.1 404 Internal Server Error Server: Apache-Coyote/1.1
您可以禁用ErrorMvcAutoConfiguration:
@SpringBootApplication @EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class}) public class SpringBootLauncher {
或通过Spring Boot的application.yml / properties:
spring.autoconfigure.exclude: org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
如果这不是您的选择,则还可以使用自己的实现扩展Spring的ErrorController:
@RestController public class MyErrorController implements ErrorController { private static final String ERROR_MAPPING = "/error"; @RequestMapping(value = ERROR_MAPPING) public ResponseEntity<String> error() { return new ResponseEntity<String>(HttpStatus.NOT_FOUND); } @Override public String getErrorPath() { return ERROR_MAPPING; }
注: 使用 一个 以上技术(禁用自动配置或执行错误控制器)。就像评论中提到的那样,两者都 不起作用 。