2012-03-19 4 views
0

Grails BootStrapのHttpSessionにservletContext(またはgrailsApplication)を介してアクセスできますか?ユーザーがアプリケーションにログインすると、セッションに関する情報が保存され、動的メソッドbeforeInsertで使用されました。しかし、私はセッションでそれらの情報を取得する方法を知らない。ここ
は私のブートストラップコードです:Grails BootStrapのservletContextからHttpSessionにアクセス

class BootStrap { 
    def grailsApplication 
    def init = { servletContext -> 
     grailsApplication.getArtefacts("Domain").each { org.codehaus.groovy.grails.commons.GrailsDomainClass gc -> 
      gc.metaClass.beforeInsert = { 
       // Do something here with information stored in session 
      } 

      gc.metaClass.beforeUpdate = { 
           // Do something here with information stored in session 
        } 
     } 
    } 
    def destroy = { 
    } 
} 

サーブレットコンテキストは、複数のセッションを持っているため、ノーそんなに

答えて

0

ありがとうございます。セッションはユーザー単位であり、コンテキストはグローバルです。したがって、スコープは一致しません。

あなたができることは、セッションの作成とセッションの削除をリッスンするHttpSessionListenerです。あなたは何とかサーバーのシャットダウン後にディスクにシリアル化されたセッションにアクセスできますが、ネイティブのTomcat実装(おそらくいくつかのバルブ)を妨害する必要があります。

関連する問題