Combien De Temps Pour Résoudre L’objet D’erreur Spring MVC ?

Parfois, votre système peut générer une grande erreur en indiquant l’objet d’erreur Spring MVC. Il peut y avoir plusieurs problèmes pour ce problème.

Ce logiciel est approuvé par plus de 30 millions d'utilisateurs dans le monde. Essayez le gratuitement aujourd'hui.

Spring MVC propose plusieurs approches complémentaires concernant différentes manipulations, mais lorsque je travaille avec Spring MVC, je trouve souvent un élève confus ou mal à l’aise.

Aujourd’hui, je vais vous programmer à la télévision les différentes options disponibles. Notre objectif est d’éviter les diverses manipulations explicites dans le contrôleur de méthode lorsque cela est possible. Il s’agit souvent d’un véritable problème transversal qu’il est préférable de résoudre en personne dans un code personnalisé.

Pour un programme de système informatique de démonstration montrant les éléments suivants, recherchez
http://github.com/paulc4/mvc-exceptions. Voir l’exemple d’outil ci-dessous pour plus de détails.

REMARQUE. Les applications de démonstration ont certainement été repensées et mises à jour (avril 2018). Le temps d’utilisation de Spring Boot 2.0.1 est généralement (espérons-le) plus facile à utiliser et à comprendre. J’ai également réparé un petit nombre d’hameçons cassés (merci pour les réponses, désolé mon pote contre les autres) oui, ça a pris beaucoup de temps).

Lancer

Spring Boot vous permet d’installer un projet Spring en tant que configuration minimale, et l’appareil sera très probablement installé par vous si une application a moins d’un peu d’années.

Spring MVC ne lui fournit pas de site d’URL de fan d’erreur par défaut (de secours) par défaut. La procédure la plus courante pour définir la page d’erreur par défaut a toujours été le SimpleMappingExceptionResolver de Spring (comme avec la V1 en fait). Nous en reparlerons plus tard.

Lors du démarrage de Spring, exécutez cet objet pour trouver le mappage identifié /error. Par convention, une expiration d’URL dans /error est comparée à un booléen inactif et regarde le surnom : même error. Dans la démo facilement, vous pouvez le revoir avec les temps bibliques sur le modèle Thymeleaf error.html. (Si un JSP est préféré, il mappera certainement – error.jsp en fonction de votre paramètre InternalResourceViewResolver). Le mappage spécifique dépend de ce que les personnes ou Spring Boot ont configuré fourni par ViewResolver (si vous en avez un).

Si vous ne parvenez pas à trouver le résolveur de Maps View pour créer /error, Spring Boot crée son rapport d’erreur de secours personnalisé, appelé “page d’erreur Whitelabel” ( page minimale). informations de placement et de nombreux détails d’erreur, ce type comme une correspondance d’exception non interceptée). Le dernier exemple d’application, si toutefois vous renommez le modèle error.html en, par exemple, error2. Ensuite, relancez html, car vous verrez qu’il est assez utilisé.

Si vous effectuez une requête RESTful (la requête HTTP spécifie un énorme type de réponse non HTML que vous souhaitez), Spring Boot renvoie une représentation JSON liée aux mêmes informations d’erreur avec une page d’erreur “whitelabel” particulière insérée.

$> curl -H "Accepter : http://localhost:8080/no-such-page"timestamp": "2018-04-11T05:56:03 application/json".845+0000","status":404,"error":"Not found","message":"Aucun e-mail disponible"," path":"/pas de page de ce type"

Spring Boot peut de temps en temps configurer une page d’erreur par défaut disponible pour les conteneurs qui correspond à toutes les informations
dans web.xml (bien qu’utilisé trop différemment). Les exceptions levées en dehors du framework Spring MVC, comme celles d’une nouvelle méthode de filtrage de servlet, sont toujours signalées sur toute page de secours Spring Boot incompréhensions. L’exemple d’application contient également quelques illustrations.

Voir la fin de l’article pour une autre discussion plus détaillée de la plupart des gestionnaires d’erreurs de Spring Boot.

spring mvc error object

Le reste relatif à cet article s’applique que vous appliquiez Spring Boot ou non.

Les programmeurs REST impatients peuvent ignorer la section pertinente sur les réponses personnalisées aux erreurs REST. Cependant, vous devriez lire l’intégralité de la déclaration à la fin, car la plupart d’entre elles s’appliquent également à toute application à grande vitesse, REST ou autre.

Utilisation des codes d’état HTTP

Pourquoi investir dans Springspring Boot pour MVC ?

Avec Spring Boot, un projet Spring peut exister avec une configuration minimale, et vous l’utiliserez probablement si votre application de confiance a moins d’un an. Spring MVC ne fournit pas de site Web d’erreur par défaut (de secours) par défaut.

Normalement, toute exception non gérée lors du traitement d’une requête Web contribue au serveur pour renvoyer une réponse HTTP 500. Cependant, toute exception que vous écrivez vous-même peut facilement finir par être annotée avec @ResponseStatus (qui prend pratiquement en charge les codes d’enregistrement de suivi HTTP expliqués par la spécification HTTP). Si un puissant commenté divers est lancé par une méthode de régulateur spécifique et non géré ailleurs, sans aucun doute le plus important est automatiquement renvoyé. Une certaine réponse HTTP au code de nom spécifié.

objet d'erreur spring mvc

 @ResponseStatus(value=HttpStatus.NOT_FOUND, Reason="Aucun type de commande") // Public 404 la classe OrderNotFoundException étend RuntimeException     // ... 
 @RequestMapping(value="/orders/id", method=GET) public String showOrder(@PathVariable("id") long id de modèle, modèle)     Order Order équivaut à orderRepository.findOrderById(id);     if(order==null) inclut new OrderNotFoundException(id);     model.addAttribute(Order);     Retour "Détails de la commande" ; 

Une réponse HTTP 404 habituelle sera renvoyée indépendamment du fait que l’URL traitée par une méthode contienne ou non un ID de commande inconnu.

Gestion des exceptions basée sur le contrôleur

Utilisation de @ExceptionHandler

Vous devriez certainement ajouter quelques méthodes supplémentaires (@ExceptionHandler) au contrôleur en ce qui concerne la gestion des exceptions spéciales de la conversation déclenchée aux méthodes du gestionnaire (@RequestMapping) du incroyablement même contrôleur. Ces programmes peuvent :

  1. Gérer les conditions sans l’annotation @ResponseStatus (généralement des exceptions ponctuelles que vous n’avez pas écrites)
  2. Redirigez le dernier utilisateur spécifique vers une vue d’erreur autonome.
  3. Créez une réponse de mauvais choix entièrement personnalisée

Ne souffrez plus d’erreurs PC.

Ce n'est un secret pour personne que les ordinateurs ralentissent avec le temps. Restoro corrigera les erreurs informatiques courantes, vous protégera contre la perte de fichiers, les logiciels malveillants et les pannes matérielles. Ce logiciel peut facilement et rapidement reconnaître tous les problèmes et problèmes liés à Windows. L'application détectera également les fichiers et les applications qui plantent fréquemment et vous permettra de résoudre leurs problèmes en un seul clic. Votre ordinateur va se sentir plus rapide que jamais ! Cliquez ici maintenant pour télécharger gratuitement la dernière version de notre logiciel :

  • 1. Téléchargez et installez le logiciel Reimage
  • 2. Lancez le logiciel et sélectionnez votre langue
  • 3. Suivez les instructions à l'écran pour lancer une analyse de votre PC

  • @Contrôleurclasse publique ExceptionHandlingController { // Méthodes @RequestHandler ... // Méthodes de gestion des exceptions // Convertit l'exception prédéfinie de votre règle en politique de statut HTTP @ResponseStatus (la valeur équivaut à HttpStatus.CONFLICT, Raison = "Violation de l'intégrité des données") // 409 @ExceptionHandler(DataIntegrityViolationException.class) public évite les conflits() // Non lié à // Spécifiez le nom attaché à la vue importante spécifique utilisée pour afficher l'erreur : @ExceptionHandler(SQLException.class,DataAccessException.class) chaîne DatabaseError() // Rien à faire. Renvoie mon identifiant de la représentation logique liée à la page d'erreur passée // regarde les reconnaisseurs autant de fois de manière moyenne. // Notez que l'exception particulière n'est en effet PAS à choisir pour cette vue (elle ne sera généralement pas levée // directement au modèle), mais voir "Extend ExceptionHandlerExceptionResolver" // au dessous de. renvoie "erreur de base de données" ; // Contrainte complète - corrigez le modèle et nommez vous-même la majeure partie de la vue. Où // Ra Voir les sous-classes de ExceptionHandlerExceptionResolver (voir ci-dessous). @ExceptionHandler(Exception.class) public ModelAndView handleError(HttpServletRequest req, Exception ex) { logger.error("Demande : " + req.getRequestURL() + pouces de large augmenter " Ex); + ModelAndView mav = un autre ModelAndView(); mav.addObject("Exception", ex); Mav .addObject("url", req.getRequestURL()); myv.setViewName("Erreur");

    Réparez votre ordinateur en toute simplicité. Reimage est le meilleur outil de réparation Windows pour vous !

    About the Author

    You may also like these