web-dev-qa-db-fra.com

Servlet.service () pour servlet [dispatcherServlet] dans le contexte avec le chemin [] a levé l'exception

J'ai une application Spring Boot qui lance les éléments suivants:

2018-01-14 01: 02: 56.863 ERREUR 372 --- [io-8080-exec-14] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () pour servlet [dispatcherServlet] en contexte avec le chemin [] a levé une exception [Le traitement de la demande a échoué; l'exception imbriquée est Java.lang.NullPointerException] avec la cause racine

L'application s'exécute et se comporte comme prévu. J'ai vu l'erreur dans les journaux plusieurs fois mais je n'arrive pas à voir pourquoi/où cela se produit.

Il n'y a aucune autre information dans le journal sur l'erreur.

J'ai jeté un œil aux journaux pour voir ce qui s'est passé avant et après l'erreur et tout semblait aller bien.

J'ai également réglé le niveau de journalisation sur TOUS et toujours le message d'erreur inutile.

Toutes les raisons pour lesquelles j'obtiens cette erreur et comment je peux obtenir que mon application génère des erreurs plus utiles.

Ce qui ressort du message d'erreur est with path [] threw exception. Je ne sais pas quoi [] est.

2
breaktop

Toutes les raisons pour lesquelles j'obtiens cette erreur et comment je peux obtenir que mon application génère des erreurs plus utiles.

La cause première est un NullPointerException (NPE) jeté à un moment donné dans la pile d'appels du DispatcherServlet.

Malheureusement, vous n'obtenez pas une trace de pile complète du NPE dans votre journal. Avez-vous extrait la sortie standard pour le stacktrace? Normalement, Spring Boot est vraiment conservateur lorsqu'il s'agit d'avaler des traces de pile. Signification: il devrait y avoir un point où vous pouvez voir la trace de pile complète. Ma conjecture: un fichier journal dans le répertoire de travail ou la sortie standard de l'application (par exemple, l'écran du terminal).

Ce qui ressort du message d'erreur, c'est avec le chemin [] a jeté l'exception. Je ne suis pas sûr de ce que [] est.

Il s'agit de la partie chemin de la demande. [] signifie que le chemin est une chaîne vide. Le printemps a utilisé le []- notation pour vous signaler qu'il y a une chaîne vide. Normalement, cela ressemblerait à [/users/34]. Je suppose que vous avez appelé quelque chose comme http://localhost:8080 donc aucune barre oblique de fin n'est présente, ce qui rend la partie chemin de l'url dans une chaîne vide.

2
Johannes Leimer