2017-07-07 3 views
0

tomcat7インスタンス上のgrails 2.5.5サーバーへのHTTPリクエストを行うJavaクライアントがあります。Grailsがhttpリクエストごとに1つのセッションを作成するのはなぜですか?

奇妙なことに、tomcat7またはgrailsは、要求ごとに1つのセッションをgrailsコントローラに作成します。

私が使用することを試みた:

static scope = 'singleton' 

しかし、うまくいきませんでした!

誰かが何が起こっているのか知っていますか?

Tomcat7はhttp要求ごとにセッションで作成するか、grailsコントローラの設定ですか?

+1

あなたはどのようなセッションについて話していますか? HTTP、データベース、その他私はHTTPセッションを想定しています。もしそうなら、認証とセッション管理には何を使用していますか? – Daniel

+0

私はgrailsのデフォルトセッション(HttpSession)を使用しています。 私はこの動作の詳細を読んで、[this](https://stackoverflow.com/questions/9691709/grails-osiv-stop-open-session-in-view-filter-for-static-resources)が見つかりました。私は今、フィルタでいくつかのアクションを削除して、grailsがすべてのリクエストに対してセッションを作成しないようにしています。 問題は、リクエストがいくつかのフィルタに入力されたときに、grailsが新しいセッションを作成することだと思います。 –

+1

HTTPセッションの仕組みについて混乱するかもしれないようです。 Grailsアプリケーションを呼び出すHTTPクライアントを作成し、クライアントがセッションに特別なことをしていない場合、各リクエストはまったく新しいものなので、新しいリクエストが発生するはずです。クライアントがそれに対処するようにコーディングされていない限り、要求が同じプロセスから来たものであることをサーバーが知る方法はありません。 –

答えて

0

私はこのソリューションで解決:

  1. は、Javaクライアント側の要求(GET)を変更しませんでした。
  2. 私のフィルタでURLのリクエストを削除しました。
  3. レンダリングをgrailsアクションの最後に(私は忘れてしまった:/)呼び出すと、grailsはクライアントに応答を渡すことができず、リクエストをGETビューリクエストとして送信できませんでした。

コメントありがとうございました!

関連する問題