それは、Tomcatでのtaglibスキャンをオフにすることは可能ですか?
質問
起動時に、Tomcatは再帰的にTLD(タグライブラリ記述子)ファイルのためにWEB-INFディレクトリをスキャンします。 Webアプリケーションは、そのディレクトリの下のファイルをたくさん持っている場合、結果として、それは起動プロセスを遅くします。完全スキャンをオフにし、あるいは少なくとも検索結果を絞り込むためのフィルタを提供するために、そのような状況での方法がある場合は、誰を知っていますか?
解決
あなたはprocessTldsは、コンテキストに属性を追加することができ、
<Context processTlds="false" ... />
ただし、JARファイルで定義されているあなたのTLDは、JARファイルをスキャンせずに動作しないでしょう。あなたは、WEB-INF内のすべてのTLDを定義する必要があります。
他のヒント
私は同じ問題で困惑ました。 Tomcatを7.0.40のソースコードを見ると、それが「偽processTldsを=」設定することで、瓶のスキャンを回避することができない、彼らはまだウェブフラグメント(ContextConfig.processJarsForWebFragments())のためにスキャンされます。
残りの2つのオプションがあります:
TOMCAT_HOME / confに/ catalina.propertiesで設定するプロパティ
org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar
空の一例のために、独自の実装によってStandardJarScannerを交換し、my.war / META-INF / context.xmlにから、それを参照してください。
<Context processTlds="false">
<JarScanner className="org.my.tomcat.NullJarScanner"/>
</Context>
後者の場合では、NullJarScannerクラスはTomcatのlibディレクトリに利用可能であることを確認する必要があります、ではないあなたの.war
Tomcatの8日には、あなたのWARファイルに以下の見た構成とMETA-INF\context.xml
を追加することによって解決することができます。
グローバルTomcatの設定を変更する必要はありませんん。
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<JarScanner>
<JarScanFilter tldSkip="*.*"/>
</JarScanner>
</Context>
関連文書は、ここに提供されています:のhttp:/ /tomcat.apache.org/tomcat-8.0-doc/config/jar-scan-filter.htmlする
別の方法として(あなたはまだいくつかのJARファイルをスキャンすることを好む場合)は、「{TOMCAT_HOME} /conf/catalina.properties」の「tomcat.util.scan.DefaultJarScanner.jarsToSkip」プロパティに新しい値を追加することができます。