Serialization Jetty JDBCSessionManager不可序列化
我在Jetty 7中使用JDBCSessionManager时有点问题。由于某些原因,在持久化SessionAuthentication时,它会尝试持久化SessionManager: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
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。这对我来说意味着涉及到序列化。