Есть ли способ развернуть данный военный файл на сервере Tomcat? Я хочу сделать это без использования веб-интерфейса.




вы можете отредактировать conf / server.xml и добавить такую запись, указывающую на ваш военный каталог
<Context path = "/strutsDisplayTag"
reloadable = "true"
docBase = "C:\work\learn\jsp\strutsDisplayTag"
workDir = "C:\work\learn\jsp\strutsDisplayTag\work" />
ЕЩЕ вы можете скопировать ваш файл .WAR в каталог веб-приложений tomcat.
Просто скопируйте файл войны в каталог $ TOMCAT_HOME / webapps /. Tomcat развернет файл войны, автоматически взорвав его. К вашему сведению - если вы хотите, вы можете делать обновления прямо в развернутом каталоге, что полезно для разработки.
Что, если я хочу вручную развернуть уже существующий файл war? (без использования функции автоматического развертывания)
Мы никогда не используем веб-интерфейс, он не нравится. Войны сбрасываются в веб-приложения и server.xml редактируются по мере необходимости. Вам нужно отскочить от него, если вы редактируете server.xml, но файл war должен быть получен автоматически. Обычно мы сначала удаляем каталог, расширенный с войны, чтобы не было путаницы, откуда пришли компоненты.
Итак, если вы развертываете новую версию своего приложения в Tomcat, вы сначала удаляете каталог своего приложения из каталога $ TOMCAT_HOME / webapps /, правильно? Удаляет ли Tomcat файл .WAR автоматически?
Tomcat Пакет Client Deployer выглядит как то, что вам нужно для развертывания на удаленном сервере из командной строки. Со страницы:
This is a package which can be used to validate, compile, compress to .WAR, and deploy web applications to production or development Tomcat servers. It should be noted that this feature uses the Tomcat Manager and as such the target Tomcat server should be running.
Есть несколько способов развернуть веб-приложение Tomcat:
pom.xml, просто задайте цель mvn tomcat:deploy, плагин включен в Maven 2. Это предполагает несколько значений по умолчанию, описанных в документация, вы можете настроить поведение в pom.xml. Есть и другие цели, которые позволяют развернуть как развернутый архив так далее.
<property name = "manager.url" value = "http://localhost:8080/manager"/>
<property name = "manager.username" value = "manager"/>
<property name = "manager.password" value = "foobar"/>
<!-- Task definitions -->
<taskdef name = "deploy" classname = "org.apache.catalina.ant.DeployTask"/>
<taskdef name = "list" classname = "org.apache.catalina.ant.ListTask"/>
<taskdef name = "reload" classname = "org.apache.catalina.ant.ReloadTask"/>
<taskdef name = "undeploy" classname = "org.apache.catalina.ant.UndeployTask"/>
<!-- goals -->
<target name = "install" depends = "compile" description = "Install application to servlet container">
<deploy url = "${manager.url}"
username = "${manager.username}"
password = "${manager.password}"
path = "${app.path}"
localWar = "file://${build.home}"/>
</target>
<target name = "list" description = "List installed applications on servlet container">
<list url = "${manager.url}"
username = "${manager.username}"
password = "${manager.password}"/>
</target>
<target name = "reload" depends = "compile" description = "Reload application on servlet container">
<reload url = "${manager.url}"
username = "${manager.username}"
password = "${manager.password}"
path = "${app.path}"/>
</target>
<target name = "remove" description = "Remove application on servlet container">
<undeploy url = "${manager.url}"
username = "${manager.username}"
password = "${manager.password}"
path = "${app.path}"/>
</target>
Все это потребует от вас конфигурации пользователя Tomcat. Он живет $CATALINA_BASE/conf/tomcat-users.xml, но, поскольку вы уже знаете, как использовать веб-интерфейс, я предполагаю, что вы знаете, как настраивать пользователей и пароли.
Привет, у меня есть аналогичная установка <target>, но я получаю FileNotFoundException: http://localhost:8080/manager/deploy?path=%2Feccount&war=file%3A%2F%2FC%3A%5Ceccount%2Fout%2FWAR-exploded. Хотя файл доступен на file:///C:/eccount/out/WAR-exploded через веб-браузер. Моя версия tomcat - 7.0.37.
Вы также можете попробовать этот сценарий командной строки для управления котом под названием tomcat-manager. Для этого требуется Python, и он общается с приложением-менеджером, включенным в tomcat, через HTTP. Вы можете делать что-то из оболочки * nix, например:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp
и:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
итак, я могу запустить rsync --delete в каталоге на сервере?