アプリケーションの起動時やAntによるJSPのコンパイル時に、Tomcat 7 Jasperは、余分なJARファイルや間違った場所にあるJARファイルについて訴えます。以下のようなメッセージが表示されました。
**compile-jsp:**
[jasper] Jul 31, 2012 7:15:15 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
[jasper] INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
スキャン時に不要なJARをスキップすることで、tomcatの起動時間やJSPのコンパイル時間を改善する方法は?
より良い出力を得るには?
Tomcat 8**では、Tomcatによってスキャンされたjarがログに表示されるように、tomcat/conf/logging.properties
に次の行を追加する必要がありました。
org.apache.jasper.servlet.TldScanner.level = FINE
上記の解決策は私の場合うまくいきませんでした。 代わりに、logging.propertiesファイルの最後の行からハッシュ(#)を削除するだけで、動作するようになりました。
# To see debug messages in TldLocationsCache, uncomment the following line:
org.apache.jasper.compiler.TldLocationsCache.level = FINE
次のステップは、Tomcat 7が探しているjarをcatalina.propertiesファイルの次の行の直後に追加することです。
org.apache.catalina.startup.TldConfig.jarsToSkip=
それが誰かを助けるなら、私は以下の出力ファイルの内容を既存の org.apache.catalina.startup.TldConfig.jarsToSkip =
エントリに追加しました。
/var/log/tomcat7/catalina.out
はtomcatログの場所です。
egrep "No TLD files were found in \[file:[^\]+\]" /var/log/tomcat7/catalina.out -o | egrep "[^]/]+.jar" -o | sort | uniq | sed -e 's/.jar/.jar,\\/g' > skips.txt
それが役立つことを願っています。
TomcatがすべてのJarsをスキャンしてTLD(タグ付けライブラリの定義)を実行するため、警告が表示されます。
ステップ1 :どのJARがこの警告を発しているかを確認するには、次の行をtomcat / conf / logging.propertiesに挿入します。
org.apache.jasper.servlet.TldScanner.level = FINE
これで、JARがインティアル警告を引き起こしている詳細を含む警告を表示できるはずです。
Step2 スキャン中に不要なJARをスキップすると、起動時間とJSPコンパイル時間が改善される可能性があるため、「catalina.properties」ファイルで不要なJARをスキップします。 ここには2つのオプションがあります。
1。 tomcat.util.scan.StandardJarScanFilter.jarsToSkip
の下にすべてのJARをリストします。 しかし、瓶がたくさんある場合、または瓶が変化し続ける場合、これは面倒になる可能性があります。
2。 または、 tomcat.util.scan.StandardJarScanFilter.jarsToSkip = *
を挿入して、すべてのjarsをスキップします。
上記の警告が表示されないはずです。アプリケーションがかなり大きい場合は、アプリケーションの展開にかかる時間を大幅に節約できます。
注:Tomcat8 でテスト済み。
この行をアンコメントする(/conf/logging.properties
内)
org.apache.jasper.compiler.TldLocationsCache.level = FINE
トムキャット7.0.53**で動作しています!
上記のどれも私にはうまくいきませんでした(tomcat 7.0.62)。.. Sensei_Shohが指摘するように、メッセージの上のクラスを参照し、これをlogging.propertiesに追加します。 私のログは:でした。
Jan 18, 2016 8:44:21 PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
だから私は追加しました。
org.apache.catalina.startup.TldConfig.level = FINE
conf / logging.propertiesで。
その後、私は非常に多くの「問題のある」ファイルを取得したので、それらをスキップする手間をかけませんでした(また、通常のロギングに戻りました)。..)。
エラーメッセージには、使用しているロガーが記載されているため、ロガー 。level
:を設定します。
[jasper] Jul 31, 2012 7:15:15 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
したがって、ロガーは org.apache.jasper.compiler.TldLocationsCache
です。 logging.properties
ファイルに、次の行を追加します。
org.apache.jasper.compiler.TldLocationsCache.level = FINE