Serialization Jetty JDBCSessionManager不可序列化

Serialization Jetty JDBCSessionManager不可序列化,serialization,jetty,Serialization,Jetty,我在Jetty 7中使用JDBCSessionManager时有点问题。由于某些原因,在持久化SessionAuthentication时,它会尝试持久化SessionManager: 16:46:02,455 WARN org.eclipse.jetty.util.log - Problem persisting changed session data id=b75j2q0lak5s1o2zuryj05h9y java.io.NotSerializableException: org.ec

我在Jetty 7中使用JDBCSessionManager时有点问题。由于某些原因,在持久化SessionAuthentication时,它会尝试持久化SessionManager:

16:46:02,455  WARN org.eclipse.jetty.util.log - Problem persisting changed session data id=b75j2q0lak5s1o2zuryj05h9y
java.io.NotSerializableException: org.eclipse.jetty.server.session.JDBCSessionManager
设置代码:

server.setSessionIdManager(getSessionIdManager());
final SessionManager jdbcSessionManager = new JDBCSessionManager();
jdbcSessionManager.setIdManager(server.getSessionIdManager());
context.setSessionHandler(new SessionHandler(jdbcSessionManager));

server.setHandler(context);

private SessionIdManager getSessionIdManager() {
    JDBCSessionIdManager idMan = new JDBCSessionIdManager(server);
    idMan.setDriverInfo("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/monty?user=xxxx&password=Xxxx");
    idMan.setWorkerName("monty");
    return idMan;
}

有人经历过类似的事情吗?

我不建议将有关JDBC的任何内容序列化到会话中。我首选的操作模式是在尽可能小的范围内获取、使用和关闭任何和所有数据库资源,如连接、语句和结果集。我使用连接池来分摊打开数据库连接的成本。我认为你也应该这样做

此外,如果该类不实现java.io.Serializable,则您别无选择。也许设计师试图用代码来表达我的感受


我检查了房间。leaf类及其任何超类都没有实现可序列化。

我不是想建议JDBCSessionManager应该是可序列化的,只是想弄清楚JDBCSessionManager在Jetty 7中是否已损坏。我只是对您发布的错误消息做出回应,它抱怨java.io.NotSerializableException:org.eclipse.jetty.server.session.JDBCSessionManager。这对我来说意味着涉及到序列化。