it-roy-ru.com

Spring Boot Disable/отображение ошибок

Я создаю API с помощью Spring Boot, поэтому хочу отключить отображение /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
12
ptimson

Вы можете отключить ErrorMvcAutoConfiguration:

@SpringBootApplication
@EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class})
public class SpringBootLauncher {

Или через application.yml/properties Spring Boot:

spring.autoconfigure.exclude: org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration

Если это не вариант для вас, вы также можете расширить ErrorController в Spring своей собственной реализацией:

@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;
    }
24
alexbt

В моем случае проблема была с веб-ресурсами, указанными в заголовке страницы входа. В частности, ссылка на css указана в заголовке, но фактически не существует в проекте.

Что также может быть полезно, в моей реализации WebSecurityConfigurerAdapter я закомментировал сначала тело configure(WebSecurity web), а затем при попытке входа в систему, вместо отображения вышеуказанной ошибки json в адресной строке моего браузера отобразился бы URL-адрес ресурса, вызывающего проблему.

0
Mu-Sonic