Java – Google App Engine – 当我更改存储在会话范围中的类时,InvalidClassException

我更新了我的User类,现在每当有人在其会话范围中存储旧版本的User类访问我的网站时,我都会收到InvalidClassException

 javax.servlet.ServletException: java.lang.RuntimeException: java.io.InvalidClassException: User; local class incompatible: stream classdesc serialVersionUID = 4949038118012519093, local class serialVersionUID = -971500502189813151 

如何阻止这些用户发生此错误? 每次我想要更新存储在会话范围内的类时,我可能会使每个人的会话无效,但是有更好的方法,这样我的用户就不必再次登录了吗?

你可以加

 private final long serialVersionUID=4949038118012519093; 

你的class级定义。 当然,新类应该具有相同的可序列化字段。