Apache Tomcat 7 или 8 кэширует что-нибудь из JRE - PullRequest
0 голосов
/ 10 февраля 2020

Я недавно перенес JRE (Oracle 8 to AdoptOpenJDK 1.8.0_232-b09), на котором несколько продуктов работают на apache tomcat (7.0.82 на Windows и 8.5.37 Linux). Все отлично работает - я полностью удалил установку oracle с серверов. Журналы Catalina ясно показывают, что tomcat работает под Adopt.

Тем не менее, у меня нет опыта работы с Apache Tomcat, и мне было интересно, было ли что-нибудь кэшированное с точки зрения JRE в Tomcat (я не могу найти ничего, что могло бы Предлагаю прочитать через tomcat документацию или гугл). Единственное, что я вижу, люди, предлагающие удалить webapps/whateverTheAppsCalled/WEB-INF (который я удаляю / воссоздаю при каждом развертывании) и содержимое папки apache / work (которая, кажется, содержит jsp файлов без jars et c.) когда изменения приложения не отражаются. Я никогда не сталкивался с этими проблемами.

Причиной моих сомнений был один сервер (который не работал пару месяцев - резервное копирование сайта), когда я переключил JRE и запустил его, я получил следующую ошибку :

Ошибка запуска ApplicationContext. Чтобы отобразить отчет об условиях, перезапустите приложение с включенной отладкой. 2020-02-02 22: 53: 51.492 ОШИБКА 12579 --- [ost-startStop-1] osboot.SpringApplication
: сбой запуска приложения

org.springframework.context.ApplicationContextException: невозможно запустить веб сервер; Вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем 'webMvcMetricsFilter', определенным в ресурсе пути к классу [org / springframework / boot / activate / autoconfigure / metrics / web / servlet / WebMvcMetricsAsencefis.Confision: выражается через метод 'webMvcMetricsFilter', параметр 0; Вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем 'simpleMeterRegistry', определенного в ресурсе пути к классу [org / springframework / boot / activate / autoconfigure / metrics / export / simple / SimpleMetricsExportAutoConfigurationsatisisfidfid.islass.class: выражается через метод 'simpleMeterRegistry', параметр 0; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем 'simpleConfig', определенного в ресурсе пути к классу [org / springframework / boot / activate / autoconfigure / metrics / export / simple / SimpleMetricsExportAutoConfiguration.class]: экземпляр компонента через фабричный метод не удалось; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [io.micrometer.core.instrument.simple.SimpleConfig]: метод фабрики 'simpleConfig' вызвал исключение; вложенное исключение: java .lang.VerifyError: (класс: org / springframework / boot / activate / autoconfigure / metrics / export / simple / SimplePropertiesConfigAdapter, метод: lambda $ step $ 0 подпись: () Ljava / время / продолжительность;) Недопустимо введите постоянный пул в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefre sh (ServletWebServerApplicationContext. java: 157) ~ [spring-boot-2.1.1.RELEASE.jar: 2.1.1. RELEASE]

Перезапуск tomcat с помощью oracle JRE запустил приложение, и я мог без ошибок переключиться обратно на Adopt. Я не мог воссоздать это на других серверах, которые также были в автономном режиме в течение нескольких месяцев, они начали с Adopt впервые без проблем. Поэтому я не уверен, была ли эта ошибка связана с чем-либо, связанным с переключателем JRE.

Я хочу избежать ситуации через пару месяцев, когда приложение может не запуститься, так как оно не может найдите файл JRE, который был кэширован из oracle JRE против попытки извлечь его из Принятие JRE.

Любые знания будут оценены - я надеюсь, что это будет прямо вперед - 'Нет apache ничего не кеширует из ответа JRE.

...