2016-08-03 9 views
7

Ich erstelle eine API mit Spring Boot so wünschen, die /error Zuordnung zu deaktivieren.Spring Boot Deaktivieren/Fehler Zuordnung

Ich habe folgende Requisiten in application.properties gesetzt:

server.error.whitelabel.enabled=false 
spring.mvc.throw-exception-if-no-handler-found=true 
spring.resources.add-mappings=false 

Allerdings, wenn ich /error traf ich:

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"} 

Erforderlich Ergebnis

HTTP/1.1 404 Internal Server Error 
Server: Apache-Coyote/1.1 

Antwort

15

Sie können Deaktivieren Sie die ErrorMvcAutoConfiguration:

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

Oder durch Frühling Stiefel ist application.yml/Eigenschaften:

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

Wenn dies für Sie keine Option ist, können Sie auch Spring Errorcontroller mit Ihrer eigenen Implementierung erstrecken:

@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

Ja, ich habe genau das gemacht, es ist einfach nervig! Frage mich, ob es eine Möglichkeit gibt, die Bindung zu entfernen, ohne dies zu tun – ptimson

+0

Gleich, wenn ich es alle Fehler entfernt habe, sind jetzt HTML anstelle von JSON ... – TheBakker

0

In meinem Fall war das Problem mit Web-Ressourcen in der Kopfzeile der Anmeldeseite verwiesen. Insbesondere wurde css in der Kopfzeile referenziert, war aber im Projekt nicht vorhanden.

Was auch hilfreich sein könnte, in meiner WebSecurityConfigurerAdapter Umsetzung kommentierte ich aus dem Körper configure(WebSecurity web) zuerst, dann zu versuchen, Adressleiste anzumelden, anstatt json meiner Browser zum Anzeigen der obigen Fehler würde die URL der Ressource angezeigt wird das Problem verursacht .