Развертывание файла войны на Tomcat - PullRequest
17 голосов
/ 27 сентября 2008

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

Ответы [ 6 ]

23 голосов
/ 27 сентября 2008

Существует несколько способов развертывания веб-приложения Tomcat:

  • Добавление в $ CATALINA_HOME / webapps, как уже упоминалось.
  • Использование сценариев сборки для автоматического развертывания через интерфейс менеджера (поставляется с Tomcat). Вот два способа
    • для Maven : используйте плагин 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, но, поскольку вы уже знаете, как использовать веб-интерфейс, я предполагаю, что вы знаете, как настроить пользователей и пароли.

10 голосов
/ 27 сентября 2008

Просто скопируйте файл war в каталог $ TOMCAT_HOME / webapps /. Tomcat развернет файл войны, автоматически взорвав его. К вашему сведению - если вы хотите, вы можете вносить обновления непосредственно в разобранный каталог, что полезно для разработки.

2 голосов
/ 27 сентября 2008

Мы никогда не используем веб-интерфейс, не нравится. Войны сбрасываются в webapps и server.xml редактируются по мере необходимости. Вам нужно отослать его, если вы редактируете server.xml, но файл war должен быть выбран автоматически. Обычно мы сначала удаляем каталог, развернутый после войны, чтобы не было путаницы, откуда появились компоненты.

2 голосов
/ 27 сентября 2008

вы можете отредактировать файл conf / server.xml и добавить такую ​​запись, указывающую на ваш каталог войны

    <Context path="/strutsDisplayTag" 
        reloadable="true" 
        docBase="C:\work\learn\jsp\strutsDisplayTag" 
        workDir="C:\work\learn\jsp\strutsDisplayTag\work" />

ELSE Вы можете скопировать файл .WAR в каталог веб-приложений tomcat.

1 голос
/ 03 января 2013

Вы также можете попробовать этот скрипт командной строки для управления 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
1 голос
/ 27 сентября 2008

Tomcat Client Deployer Package выглядит как то, что вам нужно развернуть на удаленном сервере из командной строки. Со страницы:

Это пакет, который можно использовать для проверки, компиляции, сжатия в .WAR и развертывания веб-приложений на производственных или разрабатываемых серверах Tomcat. Следует отметить, что эта функция использует Tomcat Manager, и поэтому целевой сервер Tomcat должен работать.

...