Развертывание файла war на Tomcat

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
18
0
27 224
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

вы можете отредактировать 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 развернет файл войны, автоматически взорвав его. К вашему сведению - если вы хотите, вы можете делать обновления прямо в развернутом каталоге, что полезно для разработки.

итак, я могу запустить rsync --delete в каталоге на сервере?

Milhous 27.09.2008 05:13

Что, если я хочу вручную развернуть уже существующий файл war? (без использования функции автоматического развертывания)

hpaknia 16.08.2018 02:46

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

Итак, если вы развертываете новую версию своего приложения в Tomcat, вы сначала удаляете каталог своего приложения из каталога $ TOMCAT_HOME / webapps /, правильно? Удаляет ли Tomcat файл .WAR автоматически?

craig 19.12.2011 20:12

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:

  • Попадание в $ 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, но, поскольку вы уже знаете, как использовать веб-интерфейс, я предполагаю, что вы знаете, как настраивать пользователей и пароли.

Привет, у меня есть аналогичная установка <target>, но я получаю FileNotFoundException: http://localhost:8080/manager/deploy?path=%2Feccount&war=fil‌​e%3A%2F%2FC%3A%5Cecc‌​ount%2Fout%2FWAR-exp‌​loded. Хотя файл доступен на file:///C:/eccount/out/WAR-exploded через веб-браузер. Моя версия tomcat - 7.0.37.

prayagupd 16.08.2013 16:24

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

Другие вопросы по теме