Как поместить один файл в Tomcat вместо повторного развертывания всей войны? - PullRequest
2 голосов
/ 10 июня 2011

У нас есть веб-приложение на удаленном сервере. Весь размер приложения составляет около 30 МБ. Для каждого улучшения мы будем добавлять один или несколько файлов jsps и .class. Мы не будем касаться файлов .js и файлов изображений.

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

Есть ли способ поместить один файл в веб-приложение tomcat?

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

Если вы развернули приложение в разобранном виде, т.е. ваш код находится в отдельных файлах .class вместо файлов .jar, вы можете заменить отдельные файлы.Проблема заключается в том, что загрузчики классов Java в целом (за исключением особых случаев, таких как контейнеры OSGI) и, в частности, загрузчик классов Tomcat, не заменят класс, который уже находится в памяти, он не будет заменен.Итак, вам придется перезапустить Tomcat.С JSP это становится немного сложнее, потому что Tomcat компилирует их в классы и, похоже, полагается на временную метку этого сгенерированного класса, когда решает, перекомпилировать ли JSP.

Я помню, как делал это в Java 1.2и Tomcat 4 дня, но в итоге это доставило больше хлопот, чем оно того стоило.Просто сделайте себе одолжение и запишите свою сборку, чтобы создать WAR-файл и указать, предпочтительно в пользовательском интерфейсе, какую сборку выполняет конкретное веб-приложение.

1 голос
/ 13 июня 2011

KwateeSDCM может постепенно обновлять веб-приложения.Просто продолжайте использовать цепочку сборки, которая порождает войну.Затем вы развертываете эту войну с KwateeSDCM (может быть автоматизирован с помощью интерфейса REST), который хранит хэш MD5 каждого файла и обновляет только те, которые действительно изменились.Существует специальное руководство по развертыванию веб-приложений tomcat с KwateeSDCM здесь .

...