質問: Axis はセッションをサポートしていますか?

回答: はい。基礎をなす実装の拡張可能な集合をもたらすセッション抽象化があります。詳細についてはorg.apache.axis.session.Sessionクラスをご覧下さい。特に、HTTP クッキーに基づくセッションと、SOAP ヘッダに基づくトランスポート非依存のセッションをサポートしています。適切なSessionの実装を設定し、セッションセマンティックスを使用したい人が誰でもMessageContextから取得できるようにMessageContext.setSession()によってSessionの実装をMessageContextに割り当てるのは、リクエストチェインにあるハンドラです。

質問: SOAP ヘッダに基づくセッションとはすばらしいですね。それをするにはどうすればいいのですか?

回答: この機能を実装する"org.apache.axis.handlers.SimpleSessionHandler"というクラスがあります。このハンドラを、あなたのクライアントとサーバ両方のリクエストとレスポンスフローの中に含める必要があります。例として、私達のセッションテスト (test.session.TestSimpleSession)をご覧下さい。クライアント側での使用についてはAxisClientConfiguration(英語)をご覧下さい。

質問: 他にセッションでどのようなことができますか?

回答: セッションコンテキストが確立された後であればいつでも、現在のmessageContextに対してgetSession()を呼べばSessionオブジェクトへの参照を受け取れます。このオブジェクトをHashtableのように使用することで、任意のデータこのセッションに関連付けることにより保存することができます。例えば、最初のリクエストで、データベースから呼び出した人の名前とアドレスを取り出した (高価な操作) として、それらをSessionオブジェクトにキャッシュし、同じ呼び出し人からの次回以降の呼び出しではそのキャッシュを利用することによって早いアクセスが可能になります。この機能は自分用のハンドラ、あるいはバックエンドサービスオブジェクト自身で使用することができます。

ja/axis/SessionSupport (last edited 2009-09-20 22:47:48 by localhost)