不可序列化的会话 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 方法,并尝试持久化和读取您感兴趣的值。