可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am creating an API with Spring Boot so wish to disable the /error
mapping.
I have set the following props in application.properties:
server.error.whitelabel.enabled=false spring.mvc.throw-exception-if-no-handler-found=true spring.resources.add-mappings=false
However when I hit /error
I get:
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"}
Required Result
HTTP/1.1 404 Internal Server Error Server: Apache-Coyote/1.1
回答1:
You can disable the ErrorMvcAutoConfiguration :
@SpringBootApplication @EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class}) public class SpringBootLauncher {
Or through Spring Boot's application.yml/properties:
spring.autoconfigure.exclude: org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration
If this is not an option for you, you may also extend Spring's ErrorController with your own implementation:
@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; }
回答2:
In my case the problem was with web resources referenced in the header of the login page. Specifically, css was referenced in the header, but did not actually exist in the project.
What might also be helpful, in my WebSecurityConfigurerAdapter
implementation I commented out the body of configure(WebSecurity web)
first, then on trying to login, instead of displaying the above error json my browser's address bar would display the url to the resource causing the problem.