Secara default, Tomcat mencegah webapp memuat beberapa .jar yang merupakan bagian dari distribusi Tomcat (mis. Servlet dan JSP APIs) - mungkinkah mengkonfigurasi orang lain yang juga dikecualikan?
Jika tidak dapat dilakukan dengan konfigurasi saja, apakah Tomcat memberikan titik ekstensi untuk validasi sumber daya?
Saya ingin menggunakan pustaka logging yang dibagikan, dan perlu memastikan bahwa aplikasi yang salah tidak merusak konfigurasi.
Contoh
Inilah yang saya maksud (dari log startup Tomcat):
Oct 1, 2011 5:53:40 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(D:\tomcat\myapp\WEB-INF\lib\servlet-api.jar) - jar not loaded.
See Servlet Spec 2.3, section 9.7.2.
Offending class: javax/servlet/Servlet.class
Jawaban:
Anda memeriksa / memfilter apa yang dimuat aplikasi web menggunakan loader kustom yang diperluas dari yang
org.apache.catalina.loader.WebappClassLoader
disebutkan dalam dokumentasi Tomcat .Lihat penerapan Tomcat (7.0.19) dari standar
WebAppClassLoader
yang menerapkan penyaringanjavax.servlet.Servlet
untuk memulai. Mungkin cukup untuk mengesampingkan kelas itu dan hanya memasukkan beberapa entri lagi ke dalamprotected String[]
bidangtriggers
danpackageTriggers
.sumber
WebappClassLoader
harus pergi ke JAR sendiriTOMCAT_HOME/lib
jauh dari aplikasi web Anda, hanya untuk menyatakan yang jelas :)