RG: Как создать war-файл и запустить его?

Поставим перед собой задачу. У нас есть модуль server. Он сейчас собирается в jar-файл – это не порядок. Нам нужно создать из этого модуля web-приложение и собрать его в war-файл.

  1. Изменим скрипт server/build.gradle.
    Заменяем плагин “java” на плагин “war” и удаляем задачу ”fatJar”.


    Далее нужно прописать новый “mavenCentral” репозиторий, с которого будут браться дополнительные зависимости. Сейчас у нас уже есть “jcenter”, который указан во внешнем build.gradle, но он нам не подходит т.к. в нем нет нужных нам артефактов (servlet-api). Также указываем новую зависимость нашего модуля server ‘javax.servlet:javax.servlet-api:3.1.0′.

    Теперь server/build.gradle выглядит так.
  2. Заменим файл server/src/main/java/Main.java на файл server/src/main/java/MainServlet.java.


    Этот сервлет будет принимать наши запросы и в ответе высылать текст сообщения.
  3. Теперь создадим главную страницу нашего web приложения server/src/main/webapp/index.html. Со ссылкой, которая отправит запрос в MainServlet.

  4. Еще добавим конфигурационный файл server/src/main/webapp/WEB-INF/web.xml, в котором укажем страницу, которую нужно загрузить первой.

Вот и все. Теперь можно зайдя в папку server выполнить команду gradle war. Она соберет для нас архив server/build/libs/server-1.0.war.

Наше web приложение “server” теперь можно запустить на tomcat. Для этого скачайте последний tomcat и распакуйте его в любую папку. Затем просто положите server-1.0.war в папку %TOMCAT_HOME%/webapps и запусти файл %TOMCAT_HOME%/bin/startup.bat. Через несколько секунд приложение будет запущено и вы можете его проверит по этому адресу http://localhost:8080/server-1.0/ .

Результат.
index_htmlresponse

 Исходники можно найти тут.

К оглавлению

Добавить комментарий

Ваш e-mail не будет опубликован.

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">