[JAVA] フェイルオーバー時や再起動時に NullPointerException や Cannot get property ‘xxxxxx’ on null object

一回エラーになるとブラウザを開き直さないと回復しないバターンがあったらこのケースの可能性大。

サーブレットコンテナは停止時に、セッションを永続化して起動時に復元しようとしている。
Tomcat のディフォルトだと SESSIONS.ser というファイルに保存している。

セッションに保存しているデータが正しく永続化されてないと正しく復元されない。
フェイルオーバー時や再起動時にセッションの中身が null になりNullPointerExceptionが発生したり、 Cannot get property ‘xxxxxx’ on null object というエラーが出る。

セッションに永続化した際に正しく保存するには

を実装すればよい。

serialVersionUIDはググれば出てくると思うが(ググっても説明が下手でわかりづらいかったら)
新規に作成時は、 1L
更新時には(クラスの構造が変わったら)、適当な値。(前と別の値ならなんでもよい)
と覚えておけばよい。







コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください