Jar スキャナーコンポーネント

目次

はじめに

Jar スキャナー要素は、Web アプリケーションをスキャンして JAR ファイルおよびクラスファイルのディレクトリを検索するために使用されるコンポーネントを表します。これは通常、Web アプリケーションの初期化中に、TLD や web-fragment.xml ファイルなどの設定ファイルを識別するために使用されます。これらのファイルは、Web アプリケーションの初期化の一部として処理する必要があります。

Jar スキャナー要素を コンテキスト コンポーネント内にネストできます。

たとえば、JAR ファイルをスキャンする際にブートストラップクラスパスを含めることができます。

<Context>
  ...
  <JarScanner scanBootstrapClassPath="true"/>
  ...
</Context>

Jar スキャナー要素が含まれていない場合、ほとんどの要件で十分なデフォルトの Jar スキャナー設定が自動的に作成されます。

属性

共通の属性

Jar スキャナーのすべての実装は次の属性をサポートしています。

属性説明
className

使用する実装の Java クラス名。このクラスは org.apache.tomcat.JarScanner インターフェイスを実装する必要があります。指定されていない場合、標準値(以下で定義)が使用されます。

標準実装

Jar スキャナーの標準実装は org.apache.tomcat.util.scan.StandardJarScanner です。これは(上記にリストされている共通の属性に加えて)次の追加属性をサポートしています。

属性説明
scanAllDirectories

true の場合、クラスパスにあるすべてのディレクトリが展開された JAR ファイルかどうかがチェックされます。デフォルトは false です。

Tomcat は META-INF サブディレクトリを探すことで、ディレクトリが展開された JAR ファイルであるかどうかを判断します。META-INF サブディレクトリが存在する場合に限り、ディレクトリは展開された JAR ファイルと見なされます。@HandlesTypes アノテーションとの一致をスキャンする場合、すべてのディレクトリが META-INF サブディレクトリの有無に関係なくスキャンされることに注意してください。

scanAllFiles

true の場合、クラスパスにあるすべてのファイルが JAR ファイルかどうかがチェックされます。ファイルの拡張子が .jar であるかどうかに依存しません。デフォルトは false です。

scanClassPath

true の場合、Web アプリケーションに加えて、共有および共通のクラスローダーとシステムクラスパス(ただしブートストラップクラスパスは除く)を含む Web アプリケーションの完全なクラスパスが JAR ファイルについてスキャンされます。デフォルトは true です。

scanBootstrapClassPath

scanClassPathtrue で、これが true の場合、ブートストラップクラスパスも JAR ファイルについてスキャンされます。デフォルトは false です。

scanManifest

true の場合、見つかった JAR のマニフェストファイルが追加のクラスパスエントリについてスキャンされ、それらのエントリがスキャン対象の URL に追加されます。デフォルトは true です。

ネストされたコンポーネント

Jar スキャナー要素の中に Jar スキャナーフィルタ のみをネストできます。

特別な機能

Jar スキャナー要素には関連する特別な機能はありません。