public interface ServletContainerInitializer
このインターフェースの実装には、実装、拡張、アノテーションで指定されたクラス型でアノテーションが付けられたアプリケーションクラスのセットを(onStartup(java.util.Set<java.lang.Class<?>>, javax.servlet.ServletContext)
メソッドで)受け取るために、HandlesTypes
でアノテーションを付けることができます。
このインターフェースの実装が HandlesTypes アノテーションを使用しない場合、またはアノテーションで指定されたものと一致するアプリケーションクラスがない場合、コンテナーはクラスの null セットを渡す必要があります。onStartup(java.util.Set<java.lang.Class<?>>, javax.servlet.ServletContext)
。
アプリケーションのクラスを調べて、それらが ServletContainerInitializer の HandlesTypes アノテーションで指定された条件のいずれかに一致するかどうかを確認すると、コンテナーのいずれかがクラスローディングの問題に遭遇する可能性があります。アプリケーションのオプションの JAR ファイルがありません。コンテナーは、これらの型のクラスローディング障害がアプリケーションの正常な動作を妨げるかどうかを決定する立場にないため、無視し、同時にログに記録する構成オプションを提供する必要があります。
このインターフェースの実装は、 META-INF/services ディレクトリ内にある JAR ファイルリソースによって宣言され、このインターフェースの完全修飾クラス名で命名されている必要があり、ランタイムのサービスプロバイダールックアップを使用して検出されます。メカニズムまたは意味的にそれと同等のコンテナー固有のメカニズム。どちらの場合も、絶対順序付けから除外された Web フラグメント JAR ファイルからの ServletContainerInitializer サービスは無視する必要があり、これらのサービスが検出される順序は、アプリケーションのクラスローディング委譲モデルに従う必要があります。
HandlesTypes
修飾子と型 | メソッドと説明 |
---|---|
void | onStartup(SetSE<ClassSE<?>> c, ServletContext ctx) 指定された ServletContext によって表されるアプリケーションの起動をこの ServletContainerInitializer に通知します。 |
void onStartup(SetSE<ClassSE<?>> c, ServletContext ctx) throws ServletException
この ServletContainerInitializer がアプリケーションの WEB-INF/lib ディレクトリ内の JAR ファイルにバンドルされている場合、その onStartup メソッドは、バンドルアプリケーションの起動時に 1 回だけ呼び出されます。この ServletContainerInitializer が WEB-INF/lib ディレクトリ外の JAR ファイル内にバンドルされているが、上記のように検出可能である場合、その onStartup メソッドは、アプリケーションが起動されるたびに呼び出されます。
c
- 拡張、実装、HandlesTypes
アノテーションで指定されたクラス型でアノテーションが付けられたアプリケーションクラスのセット。一致がない場合、またはこの ServletContainerInitializer が持っている場合は null HandlesTypes でアノテーションされていない ctx
- 開始され、 c に含まれるクラスが見つかった Web アプリケーションの ServletContext ServletException
- エラーが発生した場合 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.