2010-07-11 3 views
0

У меня есть небольшая проблема с использованием JDBCSessionManager в Jetty 7. По какой-то причине он пытается сохраняться SessionManager при сохраняющемся в SessionAuthentication:Jetty JDBCSessionManager не сериализуемый

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

Кто-нибудь испытал что-то подобное?

ответ

0

Я бы не рекомендовал сериализовать что-либо в отношении JDBC для сессии. Мой предпочтительный режим работы - это приобретение, использование и закрытие любых ресурсов базы данных, таких как соединение, операторы и результирующие наборы в наиболее узком объеме. Я использую пулы соединений, чтобы амортизировать затраты на открытие соединений с базой данных. Так я думаю, тебе тоже нужно идти.

Кроме того, у вас нет выбора, если класс не реализует java.io.Serializable. Возможно, дизайнеры пытались выразить свои чувства в коде.

Я проверил javadocs for JDBCSessionManager. Серийный класс и ни один из его суперклассов не реализуются.

+0

Я не пытался предположить, что JDBCSessionManager должен быть Serializable, но просто пытается выяснить, нарушен ли JDBCSessionManager в Jetty 7. – Jesper

+0

Я просто отвечаю на сообщение об ошибке, которое вы отправили, что жалуется на «java. io.NotSerializableException: org.eclipse.jetty.server.session.JDBCSessionManager ". Это говорит о том, что была задействована сериализация. – duffymo

Смежные вопросы