public interface ServletContainerInitializer
このインターフェースの実装にはHandlesTypes
アノテーションを付けることができ、
アノテーションによって指定されたクラスタイプを実装、拡張、またはアノテーションをつけられたアプリケーションクラスのSetを(onStartup(Set, ServletContext)
メソッドで)受け取るために使用します。
このインターフェースの実装がHandlesTypesアノテーションを使用しない場合、またはアプリケーション内のクラスのどれもがアノテーションで指定されたものと一致しない場合は
コンテナはクラスのSetとしてnullをonStartup(Set, ServletContext)
に渡します。
アプリケーションのクラスを調べてServletContainerInitializerのHandlesTypesアノテーションで指定された基準と一致するかどうかを確認するときに、 コンテナはアプリケーションのオプショナルなJARファイルが見つからない場合にクラスローディングの問題に遭遇する可能性があります。 コンテナはこれらのタイプのクラスローディングの失敗がアプリケーションの正常な動作を妨げるかどうかを判断する立場にないため、それらを無視する必要があると同時にログを記録するような設定オプションを提供します。
このインターフェースの実装はJARファイル内のMETA-INF/servicesディレクトリにあるこのインターフェースの完全修飾クラス名の名前が付けられたリソースによって宣言され、 ランタイムのサービスプロバイダルックアップメカニズムまたはそれと意味的に同等のコンテナ固有のメカニズムを使用して検出されます。 どちらの場合でも、絶対順序から除外されたWebフラグメントJARファイルのServletContainerInitializerサービスは無視する必要があり、 これらのサービスが検出される順序はアプリケーションのクラスローダー委譲モデルに従う必要があります。
HandlesTypes
修飾子とタイプ | メソッドと説明 |
---|---|
void |
onStartup(Set<Class<?>> c,
ServletContext ctx)
与えられたServletContextが表すアプリケーションの起動をこのServletContainerInitializerに通知します。
|
void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException
このServletContainerInitializerがアプリケーションのWEB-INF/lib内のJARファイルに入っているならば、 このonStartupメソッドは含まれているアプリケーションの起動中に1回だけ実行されるでしょう。 このServletContainerInitializerがWEB-INF/libディレクトリ以外のJARファイルに入っているが、 上記のように引き続き発見可能であるならば、このonStartup はアプリケーションが起動するたびに実行されるでしょう。
c
- HandlesTypes
アノテーションで指定されたクラス型を拡張もしくは実装、またはアノテーションのつけられたアプリケーション内のクラスのSet、
一致するものがない、またはこのServletContainerInitializerにHandlesTypes
アノテーションが付けられていない場合はnullctx
- 起動中にcに含まれるクラスが見つかったウェブアプリケーションのServletContextServletException
- エラーが発生した場合Copyright © 1999-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms. Portions Copyright © 1999-2002 The Apache Software Foundation. Portions Copyright © 2017- @megascus. Translated by @megascus.