org.springframework.data.redis.serializer.SerializationException: Cannot deserialize;
nested exception is org.springframework.core.serializer.support.SerializationFailedException:
Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?;
nested exception is org.springframework.core.NestedIOException:
Failed to deserialize object type;
nested exception is java.lang.ClassNotFoundException: com.foo.user.model.CurrentUser
セッション状態のRedisインスタンスを共有する2つの典型的なSpringブートアプリケーションがあります。上記のエラーは、アプリケーションにログインしようとすると直ちに発生します。SpringセッションRedisがClassNotFoundExceptionで逆シリアル化に失敗しました
私はここで何が起こっているのかよく分かりません。どちらのアプリケーションも、該当するUserモデルとSpring依存関係に同じライブラリとバージョンを使用しています。価値があるのはCurrentUser
org.springframework.security.core.userdetails.User
です。それ自体はSerializable
です。
私はRedisのインスタンスを再起動しました。何かがちょっとファンキーになっていると思っていましたが、そうではありませんでした。私はすでに試したことを示していますが、ほとんどの場合、成果物が正しく構築され、アプリケーションとRedisサーバーが再起動されていることが確認されています。ちょっとしたことがあります。Serializable
です。
なぜこれが表示されますか?
CurrentUserのすべてのメンバーもシリアライズ可能ですか? – Snickers3192
多少の質問:両方のアプリケーションでRedisの設定(具体的には直列化部分)が同じですか?私が正しく理解していれば、 'CurrentUser'は両方のアプリケーション間で共有されている外部ライブラリにありますか? Boot DevToolsを使用していますか?問題を再現するサンプルや両方のアプリの構成のうち少なくとも関連する部分では、持っていると便利です。 –
スニッカー - うん。 ベドラン - どのような情報が役に立ちますか? – bvulaj