私はいくつかのwebappsを1つのtomcatの下に配備しています。それぞれ独自のコンテキストがありますが、 webappから、それはID、名前と他の情報は、他のwebappにアクセスしようとすると、セッションに格納されている私は、私たちはサーブレットのspceに従って、セッションからこれらの情報を得ることができます願って、セッションは異なるwebappsの間で共有することはできません同じTomcatにデプロイされた異なるWebアプリケーション間でそれらのデータを共有する方法は?同じtomcatの下で異なるWebアプリケーションのセッションに保存されたデータを共有する方法
答えて
。サーブレットAPIはそのような使用法をサポートしていません。これを行うにはいくつかの方法があります:
SSOが必要とするものを最大限に活用できます。
データベースに情報を格納し、必要に応じて他のWebアプリケーションで情報を検索します。
両方のWebアプリケーション(つまり、ある形式のキャッシュ)からアクセス可能な共有ストレージを作成/検索します。このアプローチでは、メモリリークを起こさないように非常に注意する必要があります。
ウェブアプリケーション間で情報を渡すためにクロスコンテキストリクエストを使用します(少し醜いことやセキュリティ上の問題を引き起こす可能性があります)。
多分私は考えていない方法の束。
はい、crossContext = trueでセッションからデータを取得できますが、別のクラスローダの2つのWebアプリケーションによってAクラスが読み込まれるため、別の問題があります。お互い、セッションからインスタンスを他のwebappにロードされたAインスタンスにキャストしようとすると、classNotDefFondExceptionがスローされます。この問題を解決する方法はありますか? – xiaolg2008
瓶の中の「クラス」を歪めます。 tomcat/libの下に瓶を入れてください。どちらのプロジェクトも同じクラスファイルを参照する必要があります。 – neohope
ない簡単にユーザー権限を管理するには、この属性 crossContext = "true" を
2.useのWebサービス1.use
可能重複http://stackoverflow.com/questions/665941/any-way-to-share-session-state-between-別のアプリケーションのin-tomcat) – JoseK