2

私は二つの戦争をパッケージ化する耳を持っています。war 1 には認証用のすべてのフォームがあり、war 2 にはユーザーが使用できるアプリケーションがあります。ユーザーはハイパーリンクによって war 1 のホームページから war 2 のアプリケーションのホームページにリダイレクトされます。ユーザーがログインしてwar 2のページに移動すると、コンテキストが異なり、新しいコンテキストが新しいセッションを作成するため、セッションが失われます(私の理解によると)。2 つのコンテキスト間でセッション データを共有する方法はありますか? 私はJSF 2.1とグラスフィッシュ3サーバーをネットビーンズで使用しています

4

2 に答える 2

0

同じ耳の 2 つの WAR 間でセッションを共有できる WAS セッション共有機能を使用してこれを有効にしました。しかし、その後、JSFとの共有セッションで別の問題に直面し、2つの戦争のナビゲーションルールが多少混同されました。例として、第2の戦争をナビゲートするときにハイパーリンクを使用して第1の戦争から第2の戦争に移動すると、これが得られましたJSF からのエラー:

viewId /dir1/dir2/war2page1.xhtml、アクション #{springManagedBean.beanAction(param)} および結果 navigationOutcomeName に一致するナビゲーション ケースがありません

セッションを共有すると、第 1 WAR のナビゲーション ルールが第 2 WAR のナビゲーション ルールに置き換わる仕組みになっているようです。

于 2016-08-04T10:56:15.313 に答える
-1

セッションの代わりに、ServletContext に保存できます。サーブレットコンテキストは、サーバーがダウンするまで値を保持します。ここには、さまざまなサーブレットコンテキストを介してデータを共有する方法を説明するトピックがいくつかあります

于 2014-03-30T22:53:04.097 に答える