Ответ 1
Я загружаю WAR в мой домашний каталог, cd в /usr/local/tomcat, затем запускаю следующие команды:
bin/shutdown.sh
rm webapps/ROOT.war
rm -rf webapps/ROOT
cp ~/ROOT.war webapps
bin/startup.sh
У меня есть приложение Grails, построенное для военного файла (~ 30 Мб). Когда я пытаюсь развернуть файл войны на Tomcat 6 через диспетчер приложений, он занимает более 10 минут для развертывания или зависает бесконечно. Когда он зависает, я могу перезапустить Tomcat, и приложение обычно развертывается, однако иногда мне приходится повторять этот процесс. Я также заметил, что во время развертывания процесс Java высвобождает процессор, а ОЗУ составляет ~ 10-15%.
Я новичок в Java, поэтому я не знаю, нормально ли это, но я не могу представить, как это могло бы быть. Есть ли что-то, что я могу сделать, чтобы сделать этот процесс более плавным или быстрым? Есть ли лучший способ развертывания, чем менеджер приложений Tomcat?
Я загружаю WAR в мой домашний каталог, cd в /usr/local/tomcat, затем запускаю следующие команды:
bin/shutdown.sh
rm webapps/ROOT.war
rm -rf webapps/ROOT
cp ~/ROOT.war webapps
bin/startup.sh
Как уже отмечалось, я бы скопировал войну в папку webapps и позволю tomcat выполнить развертывание, а также ускорит экономию вашего времени.
Оба Tomcat и Jetty будут поддерживать горячее развертывание. Они просто контролируют каталог развертывания для изменений, поэтому вы можете просто скопировать файл .war в этот каталог, а сервер будет разворачивать/перераспределять.
Если использование удаленного сервера проверяет отставание, не требуется время для загрузки войны на удаленный сервер по сети.
Не используйте диспетчер приложений. Мой способ - загрузить его где-нибудь из каталога webapps, а затем скопировать в каталог webapps. Принимает гораздо меньше времени.
Определенно проверяйте журналы Tomcat для любых ошибок/предупреждений.
У вас, вероятно, есть некоторая дорогая/чувствительная логика кода в одном из ServletContextListener
s. Они обычно инициализируются во время запуска. Если это так, я бы отлаживал/прорабатывал его для любых проблем/утечек производительности.
Не всегда у вас есть достаточные права доступа для ручной установки файлов в папку webapps
- вы должны использовать развертывание файла Tomcat Application Manager для .war
и должны заставить его работать.
Для меня было распространено, что процесс загрузки файла .war
на сервер не может быть завершен; он застревает где-то посередине, и файл только частично загружается на сервер, независимо от того, сколько раз я повторяю. В таких ситуациях я счел целесообразным попробовать другой браузер. Например, я обнаружил, что застрял в Google Chrome, но как только я переключился на недавно запущенный браузер Firefox, все получилось.
Это может относиться к этому ОШИБКА JDK
Я прочитал эту статью, Tomcat7 начинает слишком поздно на Ubuntu 14.04 x64 и решил мою проблему.
Попробуйте разрешить его с помощью Замена securerandom.source = file:/dev/urandom с securerandom.source = file:/dev/./urandom в $JAVA_PATH/jre/lib/security/java.security