web-dev-qa-db-ja.com

パス[]のコンテキストでサーブレット[dispatcherServlet]のServlet.service()が例外をスローしました

私は以下を投げている春のブートアプリケーションを持っています:

2018-01-14 01:02:56.863エラー372 --- [io-8080-exec-14] oaccC [。[。[/]。[dispatcherServlet]:サーブレット[dispatcherServlet]のServlet.service()パス[]が例外をスローしました[リクエスト処理が失敗しました;ネストされた例外はJava.lang.NullPointerExceptionです]根本的な原因

アプリケーションが実行され、期待どおりに動作します。ログでエラーを何度か見ましたが、なぜ/どこで起こっているのかわかりません。

エラーに関するログには他の情報はありません。

エラーが発生する前と後に何が起こったかを確認するためにログを確認しましたが、すべてが問題なく見えました。

また、ログレベルをALLに変更しても、有用なエラーメッセージは表示されません。

このエラーが発生する理由と、アプリケーションでより有用なエラーをスローする方法。

エラーメッセージで目立つのはwith path [] threw exception。わからない[]です。

2
breaktop

このエラーが発生する理由と、アプリケーションでより有用なエラーをスローする方法.

根本的な原因は、NullPointerExceptionの呼び出しスタックのある時点でスローされたDispatcherServlet(NPE)です。

残念ながら、ログにNPEの完全なスタックトレースが表示されません。スタックトレースの標準出力をチェックアウトしましたか?通常、Spring Bootはスタックトレースを飲み込むことに関しては非常に保守的に構成されています。意味:完全なスタックトレースを確認できるポイントがあるはずです。私の推測:作業ディレクトリのログファイルまたはアプリケーションの標準出力(例:端末画面)。

エラーメッセージから際立っているのは、パス[]が例外をスローしたことです。 []が何かわかりません。

これはリクエストのパス部分です。 []は、パスが空の文字列であることを意味します。 Springは[]-表記を使用して、空の文字列があることを通知しています。通常は[/users/34]のようになります。私の推測では、http://localhost:8080のような名前を付けたので、末尾のスラッシュがなく、URLのパス部分が空の文字列にレンダリングされます。

2
Johannes Leimer