Наш поставщик рекомендует поместить JDBC-файл MySQL в каталог Tomcat 6 «$ CATALINA_HOME/endorsed».
Мне неясно, какова цель этой рекомендации.
В Classloader 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/endorsed», если он создан и активирован в командной строке, может использоваться для переопределения реализаций API, которые поставляются с JDK. Но JDK не поставляется с реализацией по умолчанию для JDBC.
Если кто-то хотел загрузить реализацию MySQL JDBC в загрузчик классов «выше, чем загрузчик классов веб-приложения», в данном случае это "обычный" загрузчик классов:
... можно поместить его в «$ CATALINA_HOME/lib» или «$ CATALINA_BASE/lib», как описано в Howto Classloader.
Мой поставщик рекомендует плохую практику?
Примечание для себя
В Tomcat 5 иерархия Classloader была следующей:
Слава Богу за упрощения!