webentwicklung-frage-antwort-db.com.de

Spring Boot Disable/Fehlerzuordnung

Ich erstelle eine API mit Spring Boot, möchte also die /error-Zuordnung deaktivieren.

Ich habe die folgenden Requisiten in application.properties eingestellt:

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

Wenn ich jedoch /error drücke, bekomme 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"}

Erforderliches Ergebnis

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

Sie können die ErrorMvcAutoConfiguration deaktivieren:

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

Oder über Spring Boot's application.yml/properties:

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

Wenn dies keine Option für Sie ist, können Sie Spring's ErrorController auch mit Ihrer eigenen Implementierung erweitern:

@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

Attribute sollten über @SpringBootApplication angegeben werden. Beispiel in Kotlin:

@SpringBootApplication(exclude = [ErrorMvcAutoConfiguration::class])
class SpringBootLauncher {
3
kejm

In meinem Fall lag das Problem bei Webressourcen, auf die im Header der Anmeldeseite verwiesen wird. Im Besonderen wurde "css" in der Kopfzeile referenziert, war jedoch im Projekt nicht vorhanden.

Was auch hilfreich sein könnte, habe ich in meiner WebSecurityConfigurerAdapter-Implementierung zunächst den Rumpf von configure(WebSecurity web) auskommentiert und dann versucht, mich anzumelden, anstatt den obigen Fehler anzuzeigen. Json Die Adressleiste meines Browsers würde die URL der Ressource anzeigen, die das Problem verursacht.

0
Mu-Sonic