Будет кэшироваться Tomcat 6 через Веб-приложения?

Я верю, выполняете ли Вы ВЫБОР * ОТ SYS.DATABASES, один из столбцов скажет Вам.

см. http://msdn.microsoft.com/en-us/library/ms178534.aspx

2
задан 7 December 2013 в 18:52
1 ответ

Ответ зависит от того, где вы разместили файл (ы) класса, используемый вашим веб-приложением.

Если вы поместите данный класс в пути к загрузчику общих классов Tomcat в $ CATALINA_HOME / lib будет доступен для всех веб-приложений. То же самое и с его кешированной формой.

Если вы используете путь загрузчика классов веб-приложений Tomcat для webapps / webapp / WEB-INF / classes and webapps / webapp / WEB-INF / lib, классы и соответствующий класс кэши изолированы между приложениями.

Техническая подготовка

Tomcat не соответствует способу, которым Java изначально обрабатывает классы, но использует собственный загрузчик классов Java. Это необходимо для обеспечения ряда функций, связанных с:

  • обработкой классов внутри класса webapp
  • кэширование для каждого webapp
  • предварительная загрузка и перезагрузка классов при запуске / времени выполнения веб-приложения
  • безопасность при загрузке / обращении к классу

Загрузчик настраиваемых классов Tomcat использует стандартные классы начальной загрузки, расширения и системы Java загрузчики, но заменяет переменную пути к классам, используемую загрузчиком классов System, на свой собственный путь к классам. Это имеет эффект:

  • замена утвержденного механизма переопределения стандартов, поставляемого с Java, на собственный Tomcats.
  • добавление двух дополнительных загрузчиков классов в конце иерархии загрузки классов Java:

    • Загрузчик общих классов Tomcat
    • Отдельный загрузчик классов per webapp

Исходный путь к классам игнорируется Tomcat.

Ключевой деталью является то, что загрузчик классов webapp не делегирует сначала загрузку класса своим родителям, а пытается загрузить каждый класс по запросу. Каждый загруженный класс впоследствии кэшируется рассматриваемым загрузчиком классов webapp. Этот уровень загрузчика классов / кеша не может использоваться совместно между веб-приложениями.

Класс «Все», загруженный загрузчиком общих классов, становится общедоступным для всех веб-приложений, включая кеш. Расширенное размещение классов в пути к загрузчику общих классов не рекомендуется, поскольку оно:

  • нарушает переносимость
  • требования к версии класса могут быть разными для Tomcat и разных веб-приложений.
  • обслуживание становится проблемой, какой класс к какому принадлежит?

К классу load прилагается довольно много мелкого шрифта. / caching / reloading process. Если это важно, я предлагаю прочитать замечательную главу о загрузке классов в Professional Apache Tomcat 6 .

Сжатая версия была написана кем-то на этой странице.

2
ответ дан 3 December 2019 в 11:44

Теги

Похожие вопросы