#tomcat #jakarta-ee #tomcat6
#tomcat #джакарта-ee #tomcat6
Вопрос:
У нас есть веб-приложение на удаленном сервере. Размер всего приложения составляет около 30 мб. Для каждого улучшения мы будем добавлять один или несколько файлов jsp и .class. Мы не будем трогать файлы .js и изображения.
Итак, для выполнения этого требования мы отправляем эти файлы на нашу электронную почту, а затем вставляем файлы в веб-приложение, а затем перезапускаем сервер tomcat, чтобы перехватить новые файлы. Мне лень выполнять описанный выше процесс.
Есть ли какой-либо способ поместить один файл в веб-приложение tomcat?
Комментарии:
1. Вы развертываете развернутый файл или нет?
Ответ №1:
Если вы развертываете разнесенное приложение, то есть ваш код находится в отдельных файлах .class вместо файлов .jar, вы можете заменить отдельные файлы. Проблема в том, что загрузчики классов Java в целом (за исключением особых случаев, таких как контейнеры OSGI) и загрузчик классов Tomcat в частности, не заменят класс, который уже находится в памяти, он не будет заменен. Итак, вам придется перезапустить Tomcat. С JSP это становится немного сложнее, потому что Tomcat компилирует их в классы и, похоже, полагается на временную метку этого сгенерированного класса, когда решает, перекомпилировать ли JSP.
Я помню, как делал это подобным образом в Java 1.2 и Tomcat 4 days, но в итоге это доставило больше хлопот, чем того стоило. Просто сделайте себе одолжение и напишите сценарий своей сборки, чтобы создать файл WAR и указать, предпочтительно в пользовательском интерфейсе, какая сборка запущена в конкретном веб-приложении.
Ответ №2:
KwateeSDCM может постепенно обновлять веб-приложения. Просто продолжайте использовать свою цепочку сборки, которая генерирует war. Затем вы развертываете этот war с помощью KwateeSDCM (может быть автоматизирован с помощью интерфейса REST), который сохраняет хэш MD5 каждого файла и обновляет только те, которые действительно изменились. Здесь есть специальное руководство по развертыванию веб-приложений tomcat с KwateeSDCM.