2010-07-11 9 views
0

J'ai un peu d'un problème avec le JDBCSessionManager à la jetée 7. Pour une raison quelconque, il essaie de persister la SessionManager lors de la persistance du SessionAuthentication:jetée JDBCSessionManager pas sérialisable

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 

Code d'installation:

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; 
} 

Est-ce que quelqu'un a expérimenté quelque chose de similaire?

Répondre

0

Je ne recommanderais pas sérialiser quoi que ce soit concernant JDBC à la session. Mon mode de fonctionnement préféré est l'acquisition, l'utilisation et la fermeture de toutes les ressources de base de données telles que la connexion, les instructions et les ensembles de résultats dans la portée la plus étroite possible. J'utilise les pools de connexion pour amortir le coût d'ouverture des connexions à la base de données. C'est comme ça que je pense que tu devrais aller aussi.

De plus, vous n'avez pas le choix si la classe n'implémente pas java.io.Serializable. Peut-être que les concepteurs essayaient d'exprimer mes sentiments dans le code. J'ai vérifié le code javadocs for JDBCSessionManager. Ni la classe feuille ni aucune de ses superclasses ne mettent en œuvre Serializable.

+0

Je n'essayais pas de suggérer que JDBCSessionManager devrait être Serializable, mais essayant simplement de déterminer si le JDBCSessionManager est cassé dans Jetty 7. – Jesper

+0

Je réponds simplement au message d'erreur que vous avez posté, qui se plaint de "java. io.NotSerializableException: org.eclipse.jetty.server.session.JDBCSessionManager ". Cela me suggère que la sérialisation était impliquée. – duffymo