Cosminexus システム構築ガイド

[目次][用語][索引][前へ][次へ]

9.7.1 サーブレットフィルタの組み込み

Cosminexusでは,Cosminexus独自の機能を使用するためのサーブレットフィルタを提供しています。Cosminexusが提供するサーブレットフィルタをbuilt-inフィルタといいます。

built-inフィルタの種類,サーバ管理コマンドでのbuilt-inフィルタの組み込み手順について説明します。

<この項の構成>
(1) built-inフィルタの種類
(2) built-inフィルタの組み込み手順

(1) built-inフィルタの種類

Cosminexusで提供しているbuilt-inフィルタは,次の2種類です。

ここでは,各built-inフィルタの概要について説明します。なお,各built-inフィルタの処理内容,およびbuilt-inフィルタの組み込み順序については,マニュアル「Cosminexus 機能解説」のCosminexusが提供するサーブレットフィルタに関する説明を参照してください。

(a) セッションフェイルオーバ用フィルタ

セッションフェイルオーバ機能とは,J2EEサーバやWebサーバでの障害発生時に,J2EEサーバ上のHTTPSessionオブジェクトに登録されたオブジェクトを引き継ぐ機能です。

セッションフェイルオーバ用フィルタは,J2EEアプリケーションで実行中のセッション情報を管理するサーブレットフィルタです。また,J2EEサーバで障害が発生したときに,管理しているセッション情報をほかのJ2EEサーバに引き継ぎます。セッションフェイルオーバ用フィルタでは,セッション情報を管理し,J2EEサーバ間のセッションの情報を引き継ぐために,次の内容を設定します。

(b) HTTPレスポンス圧縮フィルタ

HTTPレスポンス圧縮機能とは,サーブレット,JSP,および静的コンテンツへのHTTPリクエストに対するHTTPレスポンスを,gzip形式に圧縮する機能です。この機能を使用してHTTPレスポンスを圧縮することで,WebコンテナとWebクライアント(ブラウザなど)との間のHTTPレスポンス通信に掛かる時間を削減できます。

HTTPレスポンス圧縮フィルタは,HTTPレスポンスの圧縮対象となる,HTTPリクエストのURLパターンやMedia-Typeなどを定義するサーブレットフィルタです。

(2) built-inフィルタの組み込み手順

built-inフィルタをWebアプリケーションに組み込む方法には,サーバ管理コマンドを使用した属性ファイルの編集による方法と,Server Plug-inを使用する方法と,WebアプリケーションのDD(web.xml)の直接編集による方法の3種類があります。

ここでは,サーバ管理コマンドを使用した属性ファイルの編集によるフィルタの組み込みについて説明します。Server Plug-inを使用したフィルタの組み込みについては,マニュアル「Cosminexus アプリケーション設定操作ガイド」を参照してください。また,WebアプリケーションのDD(web.xml)の直接編集によるフィルタの組み込みについては,マニュアル「Cosminexus 機能解説」を参照してください。

サーバ管理コマンドを使用した属性ファイルの編集によるフィルタの組み込みの手順を次に示します。なお,属性ファイルに指定する内容は,フィルタごとに異なります。各フィルタでの指定内容については,以降の項での各フィルタの設定を参照してください。

(a) フィルタの追加

フィルタの追加は,サーバ管理コマンドで実行します。フィルタの追加手順を次に示します。

  1. フィルタ属性ファイルを作成します。
    テキストエディタなどを使用して,フィルタ属性ファイルを作成します。
    フィルタ属性ファイルには,次の内容を指定します。
    <filter-name>タグ,<filter-class>タグでのフィルタ定義
    <filter-name>タグに,追加するフィルタ名称を指定します。
    <filter-class>タグに,追加するフィルタのクラス名を指定します。
    <init-param>タグでの各種定義
    <init-param>タグ内の<param-name>タグ,および<param-value>タグに,初期化パラメタの名称および初期化パラメタの値を指定します。
    フィルタ属性ファイルについては,マニュアル「Cosminexus リファレンス 定義編」を参照してください。
  2. cjaddappコマンドの引数に手順1.で作成したフィルタ属性ファイルを指定し,コマンドを実行してJ2EEアプリケーション内のWARファイルにフィルタを登録します。
    コマンドの引数には,手順1.で作成したフィルタ属性ファイルを指定します。
    コマンドの実行例(Windowsの場合)
    cjaddapp MyServer -type filter -name app1 -warname adder_war -c C:\home\adder_filter.xml
    コマンドの実行例(UNIXの場合)
    cjaddapp MyServer -type filter -name app1 -warname adder_war -c /tmp/work/adder_filter.xml
(b) フィルタのマッピング

WARファイルに登録したフィルタのマッピングを定義します。フィルタのマッピングは,サーバ管理コマンドで定義できます。

  1. cjgetapppropコマンドを実行して,フィルタを登録したWARファイルからWAR属性ファイルを取得します。
    コマンドの実行例(Windowsの場合)
    cjgetappprop MyServer -name app1 -type war -resname adder_war -c C:\home\adder_war.xml
    コマンドの実行例(UNIXの場合)
    cjgetappprop MyServer -name app1 -type war -resname adder_war -c /tmp/work/adder_war.xml
  2. テキストエディタなどでWAR属性ファイルを編集して,フィルタのマッピングを定義します。
    WAR属性ファイルには,次の内容を指定します。
    <filter-mapping>タグでのフィルタマッピング定義
    <filter-mapping>タグ内の<filter-name>タグに,フィルタ名称を指定します。
    <filter-mapping>タグ内の<url-pattern>タグ,または<servlet-name>タグに,フィルタとマッピングするURLパターンやサーブレットクラスを指定します。
    WAR属性ファイルについては,マニュアル「Cosminexus リファレンス 定義編」を参照してください。
  3. cjsetapppropコマンドの引数に手順2.で編集したWAR属性ファイルを指定し,コマンドを実行してフィルタのマッピング情報を登録します。
    コマンドの実行例(Windowsの場合)
    cjsetappprop MyServer -name app1 -type war -resname adder_war -c C:\home\adder_war.xml
    コマンドの実行例(UNIXの場合)
    cjsetappprop MyServer -name app1 -type war -resname adder_war -c /tmp/work/adder_war.xml