Satıcımız, MySQL JDBC kavanozunu Tomcat 6 "$ CATALINA_HOME / endorsed" dizinine yerleştirmeyi önerir.
Bu tavsiyenin amacının ne olduğu net değil.
ClassLoader Pratik Bilgiler Tomcat 6 devletler için "kabul" mekanizması hakkında şu:
Java, JCP dışında yaratılan API'lerin değiştirilmesine izin vermek için "Onaylanmış Standartlar Geçersiz Kılma Mekanizması" adlı bir mekanizmayı destekler (örneğin, W3C'den DOM ve SAX). XML ayrıştırıcı uygulamasını güncellemek için de kullanılabilir. Daha fazla bilgi için, bkz . Http://docs.oracle.com/javase/1.5.0/docs/guide/standards/index.html .
Tomcat, bu mekanizmayı, kabı başlatan komut satırına -Djava.endorsed.dirs = $ JAVA_ENDORSED_DIRS sistem özelliğini dahil ederek kullanır. Bu seçeneğin varsayılan değeri $ CATALINA_HOME / onaylanmıştır. Bu onaylanan dizin varsayılan olarak oluşturulmaz.
Bu nedenle, "$ CATALINA_HOME / endorsed" dizini oluşturulur ve komut satırında etkinleştirilirse, JDK ile birlikte gelen API'lerin uygulamalarını geçersiz kılmak için kullanılabilir. Ancak JDK, JDBC için varsayılan bir uygulama ile gelmiyor.
Eğer biri MySQL JDBC uygulamasını “webapp classloader'dan daha yüksek” bir sınıf yükleyiciye yüklemek isterse, bu durumda “common” classloader:
... biri, Classloader Howto'da açıklandığı gibi "$ CATALINA_HOME / lib" veya "$ CATALINA_BASE / lib" içine girer.
Satıcım Kötü Uygulamalar öneriyor mu?
Kendime not
Tomcat 5'te, Classloader hiyerarşisi aşağıdaki gibidir:
Sadeleştirmeler için Tanrıya şükür!