2013-02-26 2 views
0

Я использую Java, hibernate, SEAM и Richfaces.Обновление базы данных при завершении сеанса сервера JBOSS

Я сохранил в базе данных регистр, указывающий, что пользователь является логином, теперь мне нужно сохранить в базе данных момент завершения сеанса сервера. Я реализовал класс, который реализует HttpSessionListener. Я положил в методе sessionDestroyed некоторые, как следующий:

  ... 
      historia.setFechafinal(new Date()); 
    historia.setGlosa("test"); 
    historia.setTiempo("tiempo"); 
    entityManager.persist(historia); 
      ... 

Когда я хочу, чтобы сохраняться объект Historia будет забросил ошибка. Это должно быть потому, что компонент entityManager просто не существует, потому что сеанс истек.

Как я могу написать в базу данных после истечения срока действия сеанса? Я новичок в этом вопросе.

Спасибо youu

ответ

1

Вы можете попробовать использовать Выполнить шов в качестве функции. Мы используем его для некоторых запланированных процессов, которые выполняются в фоновом режиме, когда пользователь не зарегистрирован.

http://docs.jboss.org/seam/2.2.2.Final/reference/en-US/html/security.html#d0e13810

0

Вы можете использовать наблюдателя для этого метод будет срабатывать всякий раз, когда HTTP сессия уничтожается

@In User user; //User stored in session scope 

@Observer("org.jboss.seam.preDestroyContext.SESSION") 
public void userSessionDestroy(){ 

    //do something with User here 

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