开发人员在实现Serializable
接口的类中声明了这一点。
XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "http://employer.webservicedto.dto.com", name = employerRequestDTO")
public class EmployerRequestDTO implements Serializable{
private static final long serialVersionUID = -3956940714175091216L;
// all private instance variables with getters & setters
}
stacktrace说-
decodeRequestData-decodeReqData()中出现异常:java.io.InvalidClassException:雇主需求DTO;地方的类不兼容:流classdesc serialVersionUID=-3551130751187195282,本地类serialVersionUID=-3956940714175091216
/**
* This method de-serializes user's request-data to return respective DTOs
*/
public static Object decodeRequestData(String requestData, String userType){
Object userRequestDTO = null;
try{
byte[] b = Base64.decode(requestData);
ByteArrayInputStream bi = new ByteArrayInputStream(b);
ObjectInputStream si = new ObjectInputStream(bi);
看起来该类是在serialVersionUID
值设置为-3551130751187195282
的情况下序列化的,然后在源中更新该类,serialVersionUID
设置为-3956940714175091216
。因此,现在类的源代码与序列化的版本不兼容。您可以尝试将serialVersionUID
设置回-3551130751187195282
,但我会小心的。试着找出这个值被更改的原因——也许类源中还有其他更改,这使得它无法与以前的序列化版本一起使用。