Ich habe einen Controller, der, falls es keinen Benutzer mit dem gegebenen Namen gibt, 404 NOT FOUND zurückgibt.404 Nicht gefunden Ausnahmebehandlung
@GetMapping(value = "/profile/{username}", produces = MediaType.APPLICATION_JSON_VALUE)
public HttpEntity<User> getUsers(@PathVariable("username") String username) {
User user = userService.findOneByUsername(username);
if(user != null) {
return ResponseEntity.ok(user);
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
Dann habe ich einen Controller, der diese Ausnahme
@ControllerAdvice
public class ExceptionHandlerController {
@ExceptionHandler(NoHandlerFoundException.class)
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public ModelAndView handleNotFound(NoHandlerFoundException e) {
return new ModelAndView("redirect:/signIn");
}
}
jedoch zu handhaben werden können, hat es keine Wirkung. Der Controller gibt die normale Standard 404-Fehlerseite zurück. Es reagiert nicht auf meinen Controller.
EDIT: Ich habe spring.mvc.throw-exception-if-no-handler-found = true
gesetzt, aber das hat auch nicht geholfen. Ich benutze Spring Boot.
In welchem Fall kann ich damit umgehen und Seite auf meinem ändern? –
Laut Ihrem Code scheint Ihr Controller von einer API zu stammen und wird entweder 200 oder 404 zurückgeben. Sonst nichts. Um den Exception-Handler zu aktivieren, müssen Sie stattdessen NoHandlerFoundException() oder NOT_FOUND zurückgeben. –