反序列化问题-获取java.lang.ClassNotFoundException

我有两个分别称为服务器A和B的服务器。我正在服务器A的会话中存储一个称为人员的类,并在服务器B中访问该人员对象。

在服务器A中,我拥有个人的POJO类(即,可序列化并具有serialVersionUID) 在服务器B中,我没有人类,但我仍想在服务器B中反序列化该对象值。

反序列化代码

ByteArrayInputStream inputStream = new ByteArrayInputStream(data);
try (ObjectInputStream input = new ObjectInputStream(inputStream)) {
    return (Map<String,Object>) input.readObject(); // -> **Exception occur here**
} catch (Exception e) {
    throw Throwables.propagate(e);
}

有人可以帮忙吗?预先感谢

ad3344 回答:反序列化问题-获取java.lang.ClassNotFoundException

很难知道您要达到的目标。您希望服务器B在不知道对象是什么类的情况下反序列化对象,而Java的反序列化无法做到这一点,此外,您还试图将未知的类(人)投射到Map中。

我的建议是改为使用JSON在服务器之间传输数据。您应该能够轻松地将Person类序列化为JSON,并将Server B上的JSON反序列化为Map,前提是该Map是Person字段的映射,并且值是原始或String。

本文链接:https://www.f2er.com/3095892.html

大家都在问