一定の時間間隔が経過した後、セッションをタイムアウトさせたい。web.xmlでは、次のようなコードを使用しています。
<session-config>
<session-timeout>20</session-timeout>
</session-config>
ここで、20は分単位のタイムアウト期間であり、正しく機能します。
私がやりたいのは、次のように私のBeanの1つで次のようなコードを使用してプログラムで実行することです。
@ManagedBean(name="login")
@SessionScoped
public class MyLoginBean implements HttpSessionListener, Serializable {
// private variables etc.
HttpServletRequest request;
HttpSession session = request.getSession();
// Constructor
public MyLoginBean() {
session.setMaxInactiveInterval(1200);
}
// The rest of the code
}
ここでのタイムアウトは1200秒、つまり20分です。残念ながら、ブラウザを開いてアプリケーションを表示すると、次のメッセージが表示されて失敗します。
com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: com.csharp.MyLoginBean.
に続く:
java.lang.NullPointerException
私はここで何が間違っているのですか?これは特定のセッションを指していることを知っています。この場合は、ファイル内setMaxInactiveInterval()
のコードで指定されているすべてではなく、ログインBeanです。web.xml
私はいくつかのBeanを持っていますが、重要なのはログインBeanのタイムアウトだけです。
Glassfish3.1.1とEclipseIndigoでJSF2.0を使用しているので、アドバイスをいただければ幸いです。