Tomcat の Valve をどう変換すれば GlassFish で動作しますか?GlassFish 内の <code>org.apache.catalina.Valve</code> インタフェースは、Tomcat に含まれるものとは異なります。 このインタフェースには、パイプラインの valve 呼び出しをより簡潔に行うための最適化が施されています(このため、サーブレットリクエストを処理する過程でスタックフレームが要求されます): GlassFish の Web コンテナは、一つの valve にパイプライン上の次の valve を呼び出させるかわりに一つの valve に対して一度に呼び出しをかけ、現在の valve 呼び出しの戻り値により、次の valve を起動するかどうかを決定します。 Tomcat の valve を GlasFish に適用するには、次のような変更が必要となります:
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) |