开发人员在实现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
}
并且堆栈跟踪说 -
decodeRequestData - decodeReqData()中的异常: java.io.InvalidClassException: EmployerRequestDTO;本地 class不兼容:stream 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);
答案 0 :(得分:0)
看起来这个类是序列化的,serialVersionUID
值设置为-3551130751187195282
,然后该类在源代码中更新,serialVersionUID
设置为-3956940714175091216
。所以现在该类的源与序列化的版本不兼容。
您可以尝试将serialVersionUID
设置回-3551130751187195282
- 但我会谨慎对待。试着找出为什么这个值被改变了 - 也许在类源中的其他变化使得它不能用于以前的序列化版本。