2017-06-23 16 views
0

私はSpring 3とApache Wicketに基づいてWebアプリケーションを作成しています。アプリケーションのユーザーが要素をクリックすると、セッションのタイムアウト後、HTMLファイルでJavaコンポーネントが見つからないため、アプリケーションがクラッシュします。どうすればこれを防ぐことができますか?セッションタイムアウトSpring

+0

ログインページ – soorapadman

+0

にあなたはどのようなバージョンのウィジェットを使用しているのですか? – soorapadman

+0

私はWicket 7.0.2を使用しています –

答えて

1

は、ページの新しいインスタンスを作成します。https://github.com/apache/wicket/blob/38bee6e932e63fa033c2139cdfb2f82eba55fadc/wicket-core/src/main/java/org/apache/wicket/settings/PageSettings.java#L46

はたぶん、この設定はあなたのためのfalseですか!

+0

このソリューションは通常の場合に機能しますが、PageParametersを使用してJavascript要素からページを作成しようとすると問題が発生します。 –

+0

これを拡張してください!あなたはそこで正確に何をしていますか? –

+0

getApplicationSettings()でOK。setPageExpiredErrorPage(LoginPage.class); getPageSettings()。setRecreateBookmarkablePagesAfterExpiry(false);セッションが期限切れになったときにページの新しい新しいバージョンを再構築するアプリケーションが強制されるため、正しく動作します –

0

あなたの背後には、JavaサーブレットWebアプリケーションがあります。タイムアウトを0に設定すると、セッションは期限切れになりません。

このブロックをweb.xmlに含めます。プログラム的に行うこともできます。

<web-app ...> 
    <session-config> 
     <session-timeout>0</session-timeout> 
    </session-config> 
</web-app> 
0

私はセッションがloginpageにリダイレクトされます期限切れのたびあなたは以下ExpiredErrorPage設定yourApplication内のinit()メソッド

を探していると信じています。それはクラッシュしたように表示されません。あなたは再びログインして自分のものを行うことができます。古いものは、何らかの理由でなくなっている場合は、デフォルトのWicketことで

getApplicationSettings().setPageExpiredErrorPage(LoginPage.class); 
+0

これはほとんどのページでうまく動作します。しかし、私はいくつかのボタンをクリックして、システムがページを更新しようとするとエラーになるPanelを含むいくつかのページがあります。表示されるエラーは です。エラー:org.apache.wicket.MarkupContainer - [Page class = com.lgs.bl.web.PrenotazioneRiepilogo、id = 3、render count = 1]でidが 'BookingSheet'のコンポーネントが見つかりません \t予定: ':BookingSheet' \t類似の名前が見つかりました: '' –

+0

@MatteoRossiあなたのページに 'BookingSheet'がありません。しかし、それはセッションとは関係ありません。そのページエラーです。あなたはページ自体をチェックインする必要があります。 – soorapadman

+0

私はこのエラーがページエラーだと知っています。しかし、この問題は、セッションが終了し、ユーザーがページ内の要素をクリックした場合にのみ発生するという問題があります。ページ正常に正常に動作します –

関連する問題