Использовать «одобренный» каталог Tomcat для реализации JAR JDBC?

Использовать «одобренный» каталог Tomcat для реализации JAR JDBC?

Наш поставщик рекомендует поместить jar-файл MySQL JDBC в каталог Tomcat 6 "$CATALINA_HOME/endorsed".

Мне неясно, какова цель этой рекомендации.

TheКак использовать Classloaderдля Tomcat 6 говорится следующее о «одобренном» механизме:

Java поддерживает механизм, называемый "Endorsed Standards Override Mechanism", позволяющий заменять 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/endorsed. Этот одобренный каталог не создается по умолчанию.

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

Если требуется загрузить реализацию MySQL JDBC в загрузчик классов «выше, чем загрузчик классов веб-приложения», в данном случае это «общий» загрузчик классов:

Иерархия загрузчика классов Tomcat 6

...его можно поместить в "$CATALINA_HOME/lib" или "$CATALINA_BASE/lib", как описано в руководстве по загрузчику классов.

Рекомендует ли мой поставщик недобросовестную практику?

Заметка для себя

В Tomcat 5Иерархия загрузчика классовбыло следующим:

Иерархия загрузчика классов Tomcat 5

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

решение1

Да это он.

Цель этой рекомендации — сделать JAR-файл доступным на всем сервере и, возможно, загружать его раньше всего в общем каталоге, поскольку представленная иерархия также диктует, что загружается в первую очередь.

Связанный контент