Red de conocimiento informático - Problemas con los teléfonos móviles - Por qué la página de actualización de la aplicación web Spring Boot no funciona

Por qué la página de actualización de la aplicación web Spring Boot no funciona

Cree una clase de manejo de excepciones global: use @ControllerAdvice para definir una clase de manejo de excepciones unificada en lugar de definirla una por una en cada controlador. @ExceptionHandler se utiliza para definir el tipo de excepción objetivo de la función y, finalmente, asigna el objeto de excepción y la URL de solicitud a error.html

@ControllerAdvice

clase GlobalExceptionHandler {

public static final String DEFAULT_ERROR_VIEW = "error";

@ExceptionHandler(value = Exception.class)

public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {

ModelAndView mav = new ModelAndView();

mav.addObject("excepción", e);

mav.addObject("url", req.getRequestURL ()) ;

mav.setViewName(DEFAULT_ERROR_VIEW);

return mav;

}

}

error. Implementación de la visualización de la página html: cree error.html en el directorio de la plantilla, genere la URL solicitada y el mensaje del objeto de excepción.

Controlador de errores

Inicie la aplicación y visite: http:/ / localhost:8080/hola, consulte la siguiente página de mensajes de error.

Después de implementar lo anterior, solo necesitamos lanzar excepciones en el controlador y, por supuesto, podemos tener muchas excepciones diferentes. Luego, en la clase @ControllerAdvice, haremos coincidir la asignación y el manejo de errores según el tipo de excepción específico que coincida con el tipo de excepción configurado en @ExceptionHandler.

Devolver formato JSON

En el ejemplo anterior, @ControllerAdvice define uniformemente la asignación de diferentes excepciones a diferentes páginas de manejo de errores. Y cuando queramos implementar una API RESTful, los errores devueltos serán datos con formato JSON en lugar de páginas HTML, que también podemos admitir fácilmente.

En resumen, simplemente agregue @ResponseBody después de @ExceptionHandler para convertir el contenido devuelto por la función del controlador al formato JSON.

Aquí hay un ejemplo concreto de un controlador de excepciones que devuelve JSON.

Crear un objeto de retorno JSON unificado, código: tipo de mensaje, mensaje: contenido del mensaje, url: URL solicitada, datos: datos devueltos por la solicitud

Crear un objeto de retorno JSON unificado , código: tipo de mensaje, mensaje: contenido del mensaje: datos devueltos por la solicitud

public class ErrorInfo {

public static final Integer OK = 0;

ERROR de entero final estático público = 100;

código de entero privado;

mensaje de cadena privada;

URL de cadena privada;

datos T privados;

// Omitir getter y setter

}

Crea una excepción personalizada para intentar detectar la excepción y devolver json

clase pública MyException extiende la excepción {

myException pública (mensaje de cadena) {

super(mensaje);

}

}

Agregue mapeo json para que el controlador genere la excepción MyException.

@Controller

clase pública HelloController {

@RequestMapping("/json")

public String json() lanza MyException {

throw new MyException("Se produjo el error 2");

}

}

Crea un controlador correspondiente para la excepción MyException

@ControllerAdvice

clase pública GlobalExceptionHandler {

@ExceptionHandler(valor = MyException.class)

@ResponseBody

public ErrorInfo

ErrorInfo r = new ErrorInfo<>();

r.setMessage(e. getMessage());

r.setCode(ErrorInfo.ERROR);

r.setData("Algunos datos");

r.setCode(ErrorInfo .ERROR);

r.setCode(ErrorInfo.ERROR);

r.setData("Algunos datos").

setData("Algunos datos");

r.setUrl(req.getRequestURL(). toString());

return r;

}

}

Inicie la aplicación y visite: http://localhost:8080/json Se devuelve el siguiente contenido:

{

código : 100 ,

datos: "Algunos datos",

Mensaje: "Ocurrió error 2",

url: "http://localhost:8080/ json"

}

En este punto, se ha completado la creación de un manejo de excepciones unificado en Spring Boot. La implementación real aún depende de las anotaciones de Spring MVC. Para un uso más profundo , consulte la documentación de Spring MVC.

Esta es la primera vez que Spring Boot crea un manejo de excepciones unificado en Spring Boot.