1

web.xml の session-timeout 設定が適切に設定されており、Tomcat が指定された値でタイムアウトになっています。問題は、タイムアウトがどのように発生しているかです。

新しいページに移動するとタイムアウトがリセットされますが、(キーストアまたはマウス クリックによって) ブラウザーをアクティブ化するか、AJAX 呼び出しを行ってもタイムアウトはリセットされません。いくつかの tomcat プロパティを試してみましたが、うまくいきませんでした。このタイプのタイムアウト設定を処理するプロパティはありますか?

前もって感謝します

4

2 に答える 2

0

HttpSessionはサーバー側のオブジェクトであるため、Webブラウザでのキーストロークとマウスイベントによってタイムアウトが自動的にリセットされることはありません。ただし、クライアントでキーボードとマウスのイベントを監視し、定期的にサーバーにRPC呼び出しを行って、セッションを維持することはできます。

ただし、Ajax呼び出しはサーバーのセッションタイムアウトをリセットしないとも言っています。私はそれを何度も行ったので、それは奇妙です、そしてそれは私のためにそれをリセットします。GWT RPCまたは別のシリアル化メカニズムを使用していますか?

それについてはよくわかりませんが、たとえば呼び出し(GWT RPCを使用している場合)によって、タイムアウトを取得するためにAjax呼び出しの実装からセッションにアクセスする必要があるかもしれません。getThreadLocalRequest().getSession()

于 2012-07-10T19:53:52.403 に答える
0

server.xml ファイルの connectionTimeout パラメータを削除しようとしましたか?

つまり:これがあった場合:

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" URIEncoding="UTF-8"            redirectPort="8443" />

次のように変更します。

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="<A VERY LARGE NUMBER>" URIEncoding="UTF-8"            redirectPort="8443" />

また:

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"            redirectPort="8443" />

server.xml ファイルで、このようなことを試しましたか?

于 2012-07-10T18:03:55.760 に答える