不可序列化的会话 websocket java ee
non serializable session websocket java ee
我写了一个 ExchangeMoney class 实现了 Serializable 接口。此 class 有会话 (javax.websocket.Session) 属性。请参阅下面的代码:
import javax.websocket.Session;
import javax.websocket.EncodeException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.Serializable;
...
public class ExchangeMoney implements Serializable {
private static final long serialVersionUID = -4363184570862565571L;
private static final Logger logger = Logger.getLogger("ExchangeMoney ");
private Session session;
....
}
由于会话字段不可序列化而出错。如何解决这个问题。
重新考虑设计。为什么可序列化对象在其内部需要一个 websocket 会话,如果需要,它不应该是瞬态的吗?
检查此 post。
Java Serialization with non serializable parts
基本上,您可以扩展会话并实现可序列化并覆盖 writeObject 和 readObject 方法,并尝试持久化和读取您感兴趣的值。
我写了一个 ExchangeMoney class 实现了 Serializable 接口。此 class 有会话 (javax.websocket.Session) 属性。请参阅下面的代码:
import javax.websocket.Session;
import javax.websocket.EncodeException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.Serializable;
...
public class ExchangeMoney implements Serializable {
private static final long serialVersionUID = -4363184570862565571L;
private static final Logger logger = Logger.getLogger("ExchangeMoney ");
private Session session;
....
}
由于会话字段不可序列化而出错。如何解决这个问题。
重新考虑设计。为什么可序列化对象在其内部需要一个 websocket 会话,如果需要,它不应该是瞬态的吗?
检查此 post。 Java Serialization with non serializable parts
基本上,您可以扩展会话并实现可序列化并覆盖 writeObject 和 readObject 方法,并尝试持久化和读取您感兴趣的值。