4

Tomcat での実行時に、:cookie_store の代わりに Java サーブレット ストアを使用しようとしています。私のアプリケーションは :cookie_store で正常に動作しますが、:java_servlet_store を使用すると何も保存されなくなります...

これはうまくいくようですが、servlet_request.sessionに何かを保存すると、後で値を取得できないようです...なくなったようです...

私の session_store.rb で:

require 'action_controller/session/java_servlet_store'
NameApplication::Application.config.session_store :java_servlet_store

私のapplication_controller.rbでは:

servlet_request.session.putValue(PROXYBRIDGEKEY, proxy_bridge)

働いているようだ

しかし、後で値を取得しようとすると、ゼロになります...

servlet_request.session.getValue(PROXYBRIDGEKEY)

ここで何が問題になる可能性があるかについてのアイデアはありますか?

明確にするために、セッションに値を入れると機能します(テスト済み)。新しい html リクエストでは、値の取得が機能しなくなりました。だから、私が推測するクッキーの取得に問題があるに違いありません...

4

2 に答える 2

1

試すことができることの 1 つは、ストアを次のように定義することです。

「action_controller/session/java_servlet_store」が必要です

NameApplication::Application.config.session_store :java_servlet_store, :key => "MyKey"

関連性があるかどうかはわかりませんが、:cookie_store には必要でした。java_servlet_store でもサーブレット キーを識別する必要があることは理にかなっています。このキーは、後続のリクエストのためにブラウザに送信される Cookie のキーになります。

お役に立てれば。

于 2013-02-12T18:47:33.303 に答える
1

それでもうまくいかない場合は、java_servlet_store キーを「JSESSIONID」に設定して、標準の JVM セッションを使用するようにしてください。

そこから Ruby で、セッションの読み取りと書き込みを行うために必要なことはすべて (これは JVM セッション オブジェクトにアクセスすることになります):

session.id
セッション[:あなたのセッション変数]

注: セッションを初期化していない (セッション変数値を割り当てていない) 場合、セッションは初期化するまで nil (session.id を未定義にする) になります。

于 2013-02-26T18:21:16.873 に答える