0

Java、休止状態、SEAM、および Richfaces を使用しています。

ユーザーがログインしていることを示すレジスタをデータベースに保存しましたが、サーバーのセッションが期限切れになった瞬間にデータベースに保存する必要があります。HttpSessionListener を実装するクラスを実装しました。次のようなメソッド sessionDestroyed を入れました。

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

オブジェクトのヒストリアを保持したい場合、エラーがスローされます。これは、セッションの有効期限が切れたため、コンポーネント entityManager が存在しないためです。

セッションの有効期限が切れた後、データベースに書き込むにはどうすればよいですか? 私はこのテーマの新人です。

ありがとう

4

2 に答える 2

1

Seam の Run As 機能を試してみてください。ログインしているユーザーがいないときにバックグラウンドで実行されるいくつかのスケジュールされたプロセスに使用します。

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

于 2013-02-26T20:09:47.317 に答える
0

これにはオブザーバーを使用できます。メソッドは、http セッションが破棄されるたびに起動されます。

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

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

    //do something with User here

}
于 2014-03-14T18:44:40.987 に答える