2009-05-08 3 views
1

私はJavaサーブレットテクノロジをベースにしたWebアプリケーションを持っています。私は新しいフレームワークに切り替えることを考えています。おそらく、C#とASP MVCを使って.NETスタックに切り替えることが考えられます。私は新しいアプリケーションを開発している間、現在のアプリケーションをダウンさせたくありません。目標は、古いシステムを実行し、新しいアーキテクチャで新しいモジュールを開発することです。Java/Servletと.NETの間でセッション情報をどのように転送しますか

私がJavaスタックにとどまっているのは、単純にサーブレットマッピングの問題だと思います。しかし、私が.NETスタックに切り替えると、2つのシステム間でセッションを転送する必要があります。これは簡単な方法で実行可能ですか? SOAPのようなものを使う必要がありますか?

誰もこのようなことをしている経験はありますか?

ありがとうございました

答えて

3

SOAPはありません。その簡単:

1)Java Webアプリケーションがセッションを追跡するためのクライアント(ブラウザ)ベースのメカニズムを使用していることを確認してください。 (Cookie、URLエンコーディングなど)

2)現在のセッションに複雑なJavaオブジェクトを配置する場合は、キー/値辞書に(実質的に)縮小されるように必要な変更を加えます。

3)セットアップ外部システム(例えば、DB)(1)

4からセッションIDに基づいて、キー/値のセッションデータを保存するため)あなたはもはやサーブレットセッション機構を使用しないであろう。代わりに、特定のセッションIDのMapを返す基本的なセッションマネージャを記述する必要があります。

- .NET /パイソン/緯糸側

5)にまだ(1)

6)あなたは(セッション・マネージャを複製する必要があるのと同じ容器不変メカニズムを使用してセッションを識別しています4)を.NETコンテナ用に作成します。 (3)のRDBMを選択しましたか?これは、同じセッションキーを使用して同じデータベースにクエリする以外のものではありません。

7)2つの異なるコンテナを使用して同じアプリケーションに対して異なるページを提供しています。

2

同じDBを使用していますか?セッションレコード情報をDBテーブルレコードに格納し、2つのシステム間でレコードのIDを渡すだけです。

1

共通のデータベースにセッションデータを格納するために、両方のシステムでカスタムセッションプロバイダを実装するのが最善の方法だと思います。これは.NETで可能ですが、Javaでも可能です。

.NETでカスタムセッションステートストアプロバイダを実装する方法について説明しているこのページをご覧ください。http://msdn.microsoft.com/en-us/library/ms178587.aspx There VB.NETのサンプル実装です(ページ下部のリンクを参照)

関連する問題