Есть ли способ развернуть данный файл войны на сервере Tomcat? Я хочу сделать это без использования веб-интерфейса.
Развертывание военного файла на Tomcat
Ответ 1
Просто скопируйте файл войны в каталог $TOMCAT_HOME/webapps/. Tomcat разворачивает военный файл, автоматически взрывая его. FYI. Если вы хотите, вы можете делать обновления непосредственно в взорванном каталоге, что полезно для разработки.
Ответ 2
Существует несколько способов развертывания Tomcat webapp:
- Сбрасывание в $CATALINA_HOME/webapps, как уже упоминалось.
- Использование сценариев сборки для автоматического развертывания через интерфейс менеджера (который поставляется с Tomcat). Вот два способа
- для Maven: используйте плагин tomcat. Вам не нужно включать его в
pom.xml
, просто введите цельmvn tomcat:deploy
, плагин включен в Maven 2. Это предполагает несколько значений по умолчанию, описанных в , вы можете настроить поведение вpom.xml
. Существуют и другие цели, которые позволяют развертывать как взорванный архив и т.д. - для Ant: что-то вроде этого:
- для Maven: используйте плагин tomcat. Вам не нужно включать его в
<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
, но поскольку вы уже знаете, как использовать веб-интерфейс, я предполагаю, что вы знаете, как настроить пользователей и пароли.
Ответ 3
вы можете отредактировать conf/server.xml и добавить запись, подобную этой, указывающую на ваш военный каталог
<Context path="/strutsDisplayTag"
reloadable="true"
docBase="C:\work\learn\jsp\strutsDisplayTag"
workDir="C:\work\learn\jsp\strutsDisplayTag\work" />
ELSE вы можете скопировать ваш .WAR файл в каталог webapps tomcat.
Ответ 4
Мы никогда не используем веб-интерфейс, не нравится. Войны удаляются в файлах webapps и server.xml при необходимости. Вам нужно отбросить его, если вы отредактируете файл server.xml, но файл войны должен быть выбран автоматически. Обычно мы удаляем каталог, развернутый с начала войны, поэтому нет путаницы с тем, откуда пришли компоненты.
Ответ 5
Tomcat Client Deployer Package - это то, что вам нужно для развертывания на удаленном сервере из командной строки. На странице:
Это пакет, который можно использовать для проверки, компиляции, сжатия на .WAR и развертывания веб-приложений для производства или разработки серверов Tomcat. Следует отметить, что в этой функции используется Tomcat Manager, и поэтому должен быть запущен целевой сервер Tomcat.
Ответ 6
Вы также можете попробовать эту командную строку script для управления tomcat под названием 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