Home Index Changes Prefs Log in »

Tomcat の Valve をどう変換すれば GlassFish で動作しますか?

GlassFish 内の org.apache.catalina.Valve インタフェースは、Tomcat に含まれるものとは異なります。

このインタフェースには、パイプラインの valve 呼び出しをより簡潔に行うための最適化が施されています(このため、サーブレットリクエストを処理する過程でスタックフレームが要求されます): GlassFish の Web コンテナは、一つの valve にパイプライン上の次の valve を呼び出させるかわりに一つの valve に対して一度に呼び出しをかけ、現在の valve 呼び出しの戻り値により、次の valve を起動するかどうかを決定します。

Tomcat の valve を GlasFish に適用するには、次のような変更が必要となります:

  • valve の invoke() のシグネチャを void から int に変更する。
  • 全ての

  return;

を、以下のように置き換える。

  return Valve.END_PIPELINE;

  • 全ての
  getNext().invoke(request, response);

の呼び出しを以下のように置き換え、

  return Valve.INVOKE_NEXT;

以下のメソッドに続く全てのコード(削除されることになる valve のロジック)を移動する。

  public void postInvoke(Request request, Response response)
      throws IOException, ServletException;


日本語翻訳: Kana

英文 (翻訳したバージョン: 2)

« Home Attachments Info Index Changes Prefs
This page (revision-1) was last changed on 30-Jun-08 20:37 PM, -0700 by Kana