2017-08-29 6 views
0

"Spring"ベースのダッシュボードに必要なすべてのデータを保持するSingletonオブジェクトがあります。私はログイン中にコントローラから受け取ったhttpservlet要求にこのシングルトンオブジェクトを格納します。私はSessionDataにはヌルとなっているかどうかを確認し、servlet.session.attributeからそれを取得しように私がログインするとeclipseがApacheをリロードするときにsession.attributeがnullになるのを防ぐ方法

servlet.getSession().setAttribute(SESSION_DATA, sessionData); 

。私は、ソースファイルを保存する場合でも、ヌルになるservlet.session.attributeからすべての属性

  • 数分ごとに(日食による)私のapacheの
  • 自動負荷

session.attributeはなってきてないようにする方法はありますヌル ?

 if (sessionData == null) 
      if (httpServlet != null && httpServlet.getSession() != null 
        && httpServlet.getSession().getAttribute(SESSION_DATA) != null) { 
       log.info("Recovering sessionData from http session"); 
       sessionData = (SessionDataManager) httpServlet.getSession().getAttribute(SESSION_DATA); 
      } else { 
       log.warn((httpServlet == null) ? "httpServlet is null" : "httpServlet is not null"); 
       if (httpServlet != null) { 
        log.warn((httpServlet.getSession() == null) ? "httpServlet.getSession is null" 
          : "httpServlet.getSession is not null"); 
        if (httpServlet.getSession() != null) 
         log.warn((httpServlet.getSession().getAttribute(SESSION_DATA) == null) 
           ? "httpServlet.getSession.getAttribute(SESSION_DATA) is null" 
           : "httpServlet.getSession.getAttribute(SESSION_DATA) is not null"); 

       } 
      } 
+0

セッション属性を設定する代わりにセッションスコープのスプリングビーンを使用します。 – ArslanAnjum

+0

あなたは詳しく教えてください。または、私に使用できるリンクを教えてください。 – Siddharth

答えて

0

私は私のセッションの死のための時間を増やすために、以下の行を追加するために、私のweb.xmlを編集しました。

私はonDestroyが呼び出されていることに気付きました。そして、doFilterは、フィルタにアクセスしているスレッドがなくても呼び出されます。したがってが増えて、がタイムアウトになりました。

<session-config> 
     <session-timeout>10</session-timeout> 
</session-config> 

この値は分単位です。無制限に設定するには、値を-1に設定します。

関連する問題