ステップ8.リクエストを処理する
最初のリクエストをsimpapp
サーブレットに送信する前に、WebLogicがinit()
メソッドを呼び出してサーブレットを初期化します。次の形式でJoltセッション・プールが確立されます。
ServletSessionPoolManager b_mgr =
(ServletSessionPoolManager).SessionPoolManager.poolmanager;
次に、サーブレットのdoPost()
メソッドが実行されます。このメソッドには、WebLogic Serverの起動時に作成されたsimpapp
セッション・プールからの接続を取得するコードが含まれます。次に示すコードの抜粋は、simpapp
セッション・プールの取得方法を示しています。
// Get the "simpapp" session pool
ServletSessionPool session =
(ServletSessionPool) b_mgr.getSessionPool("simpapp");
呼び出されるTuxedoサービスは非表示フィールドで識別され、リクエスト・オブジェクトから取得されます。次のコードでサービス名パラメータを取得します。
String svcnm[] = req.getParameterValues("SVCNAME");
単一の値を含む文字列配列のSVCNAME
フィールドの値を取得します。ここでは、配列の最初の要素のみを使用します。フォームのSVCNAME
隠し表示に設定された値は、TOUPPER
です。これは、サーブレットが呼出すTuxedoサービス名で、次のようにcall()
メソッドに渡されます。
// Invoke a service and get the result.
result = session.call(svcnm[0], req);
サンプル・プログラムのsession
オブジェクトは、HttpServletRequest
オブジェクトを直接受け入れることが可能なServletSessionPool
です。このオブジェクトは、内部でデータを変換し、TOUPPER
サービスのパラメータを含むJolt DataSetオブジェクトにします。
ノート:
TOUPPER
サービスでは、"STRING"
というパラメータの大文字と小文字を区別する必要があります。そのため、HTMLフォーム内のテキスト・フィールドのラベルを"STRING"
とまったく同一にする必要があります。 SVCNAME,
などのその他のデータ・フィールドは、パラメータとしては関連性がありませんが、Tuxedoサービスを中断しません。
フォーム・パラメータを使用してサービスに名前を付けると、サービス・パラメータとして渡す必要がありません。サービス名はHttpServletRequest
オブジェクトに含まれるので、自動的に渡されます。
TOUPPER
サービスは、"STRING"
パラメータのテキストを大文字に変換し、実行される呼出しの結果を含むServletResult
オブジェクトを使用してサーブレットに返します。また、サービス呼出し時に例外がスローされた場合は、例外の詳細情報も送信します。
親トピック: サンプル・プログラムを使用する