Використовувати "затверджений" каталог Tomcat для банку JDBC реалізації?


1

Наш продавець рекомендує розмістити банку MySQL JDBC в каталог Tomcat 6 "$ CATALINA_HOME / затверджений".

Мені незрозуміло, яка мета цієї рекомендації.

Завантажувач класів Howto для Tomcat 6 штатів наступне про механізм «схваленого»:

Java підтримує механізм, який називається "Механізм переопрацювання затверджених стандартів", що дозволяє замінити API, створені за межами JCP (тобто DOM і SAX від W3C). Він також може бути використаний для оновлення реалізації аналізатора XML. Для отримання додаткової інформації див: http://docs.oracle.com/javase/1.5.0/docs/guide/standards/index.html .

Tomcat використовує цей механізм, включаючи в системний параметр -Djava.endorsed.dirs = $ JAVA_ENDORSED_DIRS командний рядок, який запускає контейнер. Типовим значенням цього параметра є $ CATALINA_HOME / схвалено. Цей затверджений каталог не створений за замовчуванням.

Таким чином, каталог "$ CATALINA_HOME / затверджений", якщо він створений і якщо його активовано в командному рядку, може використовуватися для переосмислення реалізацій API, що поставляються з JDK. Але JDK не поставляється з реалізацією за замовчуванням для JDBC.

Якщо хтось хотів завантажити реалізацію MySQL JDBC у завантажувач класів "вище, ніж завантажувач класів webapp", у цьому випадку "загальний" завантажувач класів:

Ієрархія завантажувачів класів Tomcat 6

... можна поставити його в "$ CATALINA_HOME / lib" або "$ CATALINA_BASE / lib", як описано в Howto Classloader Howto.

Чи рекомендує мій продавець погані практики?

Примітка до себе

У Tomcat 5 ієрархія завантажувачів класів була такою:

Ієрархія завантажувачів класів Tomcat 5

Слава Богу за спрощення!

Відповіді:


1

Так.

Мета цієї рекомендації - зробити доступним сервер JAR широким і, можливо, його завантажити перед усім у загальному каталозі, оскільки представлена ​​ієрархія також диктує те, що завантажено спочатку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.