Как запустить приложение на tomcat
«Я люблю писать код аутентификации и авторизации». Нет Java-разработчика. Надоело строить одни и те же экраны входа снова и снова? Попробуйте API Okta для размещенной аутентификации, авторизации и многофакторной аутентификации.
Развертывание приложений сложно. Часто вам нужен консольный доступ к серверу, с которого вы извлекаете последний код и затем вручную создаете экземпляр в своем контейнере. В этом руководстве вы увидите более простой способ использования Tomcat: вы создадите аутентифицированное веб-приложение и развернете его через браузер, используя последние версии Tomcat, Spring Boot и Java.
Запустите приложение Java 11
Откройте консоль и запустите java -version чтобы увидеть, какую версию Java вы используете.
OpenJDK 64 -Bit Server VM (build 25.111 -b16, mixed mode)Java 8 показана как версия 1.8.0 .
Обратите внимание, что SDKMAN работает только в Linux и Unix-подобных системах. Пользователи Windows должны будут установить последнюю версию Java вручную .
Если SDKMAN установлен правильно, вы увидите инструкции по получению команды для работы в вашем текущем терминале.
Please open a new terminal, or run the following in the existing one:Запустите указанную source команду, и команда sdk должна быть активной.
Теперь установите последнюю sdk install java Java просто с sdk install java .
После того, как java -version 11.0.2 должно 11.0.2 .
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)ПРИМЕЧАНИЕ: если у вас уже есть SDKMAN! и Java 11 установлена, вы можете установить ее по умолчанию, используя sdk default java 11.0.2-open .
Создайте проект Spring Boot для Tomcat
Самый популярный способ начать проект Spring с Spring Initializr
Перейдите к файлу start.spring.io в своем любимом веб-браузере, затем выберите параметры проекта:
- Оставьте как Maven, Java и последнюю стабильную версию Spring Boot (2.1.4)
- Измените группу и артефакт, если хотите
- Нажмите на Дополнительные параметры и выберите Java 11
- В поле Зависимости введите и выберите Web , Security и Devtools . Они должны отображаться как зависимости, выбранные справа
Теперь нажмите Generate Project, и zip-файл будет загружен вместе с проектом внутри. Просто разархивируйте и введите каталог из командной строки. Если вы увидите ls вы увидите пять файлов и один каталог ( src ).
Давайте посмотрим, что делает проект. Введите ./mvnw spring-boot:run и нажмите ввод. Все может занять некоторое время для установки, но в конечном итоге вы должны увидеть что-то вроде этого:
2019-03-17 19:56:49.342 INFO 10744 --- [ restartedMain] com.karl.demo.DemoApplication : Started DemoApplication in 3.022 seconds (JVM running for 3.56)Вы можете аутентифицироваться, используя «user» для имени пользователя и пароля, который был напечатан на вашем терминале. После входа в систему вы увидите страницу с ошибкой 404, потому что вы не создали никакого кода для отображения целевой страницы в / .
Добавьте безопасную аутентификацию в приложение Spring Boot
После того, как вы зарегистрировали бесплатную учетную запись, перейдите в раздел Приложения на панели инструментов. Нажмите « Добавить приложение» , выберите « Интернет» и нажмите « Далее» .
Теперь вы должны быть на странице настроек приложения. Замените поле URI для перенаправления входа следующим:
Нажмите Готово внизу. Скопируйте свой идентификатор клиента и секрет клиента из раздела «Учетные данные клиента» и храните их в безопасном месте. Теперь прямо вверху щелкните вкладку API (рядом с Приложениями ) и затем Серверы авторизации . Запишите URI эмитента, который выглядит следующим образом:
Создайте файл в своем проекте в src/main/resources/application.yml и поместите эти значения внутрь:
Теперь добавьте библиотеку Okta Spring Boot Starter в качестве зависимости в вашем pom.xml .
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.security.core.Authentication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; public String currentUserName(Authentication authentication) < DefaultOidcUser userDetails = (DefaultOidcUser) authentication.getPrincipal();Перезапустите приложение, используя ./mvnw spring-boot:run или используйте свою IDE для его запуска.
Подсказка: выход из сеанса OAuth2 более нюансов, чем можно себе представить. Чтобы продолжить тестирование процесса входа в систему, я рекомендую использовать закрытые окна просмотра, чтобы обеспечить возврат экрана входа в систему; закройте их, когда вы закончите.
Остановите приложение Spring Boot, чтобы вы могли запустить Tomcat на порте по умолчанию 8080.
Настройте Tomcat 9 для приложения Spring Boot
Using CATALINA_BASE: /home/karl/Downloads/apache-tomcat-9 .0.19 Using CATALINA_HOME: /home/karl/Downloads/apache-tomcat-9 .0.19 Using CATALINA_TMPDIR: /home/karl/Downloads/apache-tomcat-9 .0.19 /temp Using JRE_HOME: /home/karl/ .sdkman /candidates/java/current Using CLASSPATH: /home/karl/Downloads/apache-tomcat-9 .0.19 /bin/bootstrap .jar: /home/karl/Downloads/apache-tomcat-9 .0.19 /bin/tomcat-juli .jarПодсказка: вы также можете использовать ./catalina.sh run для запуска вашего приложения. Эта команда напечатает логи на ваш терминал, поэтому вам не нужно следить за ними, чтобы увидеть, что происходит.
Создайте WAR-файл из вашего проекта Spring Boot
Теперь вам нужно создать WAR-файл из вашего приложения Spring Boot. Добавьте следующее сразу после узла <description> в вашем pom.xml .
Удалите встроенный сервер Tomcat, добавив в список зависимостей следующее:
Наконец, включите ваше приложение в качестве сервлета, расширив основной класс с помощью SpringBootServletInitializer :
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class DemoApplication extends SpringBootServletInitializer <Теперь очистите и упакуйте свое приложение с помощью следующей команды:
[INFO] Building war: /home/karl/tst/demo/target/demo-0 .0.1-SNAPSHOT.warОбратите внимание, где живет ваш новый .war .
Разверните WAR для Tomcat из браузера
Возможно, вы заметили, что с правой стороны экрана приветствия Tomcat было три кнопки: Состояние сервера , Приложение менеджера и Диспетчер хостов . Вы можете развернуть WAR-файл из приложения Manager, но для этого требуется аутентификация (и по умолчанию пользователи не определены).
Добавьте следующее в файл conf/tomcat-users.xml в каталоге Tomcat:
< user username = "karl" password = "secret" roles = "manager-gui" />Вам нужно будет перезапустить Tomcat, чтобы изменения вступили в силу. Поскольку вы начали это напрямую, вам нужно остановить процесс самостоятельно. Найдите идентификатор процесса с помощью ps aux | grep tomcat ps aux | grep tomcat .
karl 11813 180 1.9 7389172 159596 pts /0 Sl 09:44 0:07 /home/karl/ .sdkman /candidates/java/current/bin/java -Djava.util.logging.config. file = /home/karl/Downloads/apache-tomcat-9 .0.19 /conf/logging .properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed. dirs = -classpath /home/karl/Downloads/apache-tomcat-9 .0.19 /bin/bootstrap .jar: /home/karl/Downloads/apache-tomcat-9 .0.19 /bin/tomcat-juli .jar -Dcatalina.base= /home/karl/Downloads/apache-tomcat-9 .0.19 -Dcatalina.home= /home/karl/Downloads/apache-tomcat-9 .0.19 -Djava.io.tmpdir= /home/karl/Downloads/apache-tomcat-9 .0.19 /temp org.apache.catalina.startup.Bootstrap start karl 11881 0.0 0.0 6268 2280 pts /0 S+ 09:44 0:00 grep tomcatПерезагрузите сервер, используя startup.sh как и раньше. Когда вы нажимаете кнопку « Приложение менеджера», введенные выше данные пользователя должны открыть экран менеджера.
Совет: чтобы убедиться, что ваши локальные настройки разработки соответствуют машине, на которой вы развертываете, убедитесь, что встроенная версия Tomcat совпадает с вашим внешним сервером, добавив следующее в ваш pom.xml :
Узнайте больше о Tomcat, Spring Boot и Java 11
Отлично, вы удаленно развернули приложение Spring Boot 2.1 в Tomcat 9, все с поддержкой Java 11!
Надеюсь, вы нашли этот урок полезным. Вы можете найти репозиторий GitHub для этого примера в oktadeveloper / okta-spring-boot-tomcat-example .
Проверьте некоторые из этих ссылок ниже для получения дополнительной информации:
- i18n в Java 11, Spring Boot и JavaScript
- Spring Boot 2.1: выдающаяся поддержка OIDC, OAuth 2.0 и Reactive API
- Перенесите приложение Spring Boot на новейшую и лучшую Spring Security и OAuth 2.0
- Создавайте реактивные API с помощью Spring WebFlux
- Создайте реактивное приложение с помощью Spring Boot и MongoDB
- Baeldung Как развернуть файл WAR в Tomcat
Как то, что вы узнали сегодня? Подпишитесь на нас в Twitter и подпишитесь на наш канал на YouTube .
«Развертывание приложения Spring Boot в Tomcat» первоначально было опубликовано в блоге разработчиков Okta 16 апреля 2019 года.
«Я люблю писать код аутентификации и авторизации». Нет Java-разработчика. Надоело строить одни и те же экраны входа снова и снова? Попробуйте API Okta для размещенной аутентификации, авторизации и многофакторной аутентификации.
Установка Tomcat
Чтобы использовать Tomcat в Java, его необходимо установить в систему. О том, как установить Tomcat можно прочитать в этой статье, где также рассматриваются и другие сервера приложений. Итак, имея работающий Tomcat, встроенный в IDEA, можно попробовать приготовить свой первый сервлет.Как создать веб-приложение
Как встроить приложение в работающий сервер
Несмотря на то, что встроенный Tomcat в IDEA — удобная фича, веб-приложение может быть перенесено на другой сервер и в другой контейнер. Рассмотрим вариант, когда необходимо встроить свое приложение в уже работающий сервер. Во-первых, необходимо дополнительно разобрать цель и функции контейнера сервлетов. Программа, которая приведена в примере выше — это веб-приложение. Класс TimeWorker — сервлет. Компоненты выполняют исключительно обработку запросов. Данные компоненты должны быть встроены в специальный контейнер сервлетов. Цель контейнера сервлетов — поддержка сервлетов и обеспечение их жизненного цикла. Простейший пример работы Tomcat — сканирование определенной папки с целью определить, появился ли в ней новый сервлет. Если да — инициализировать его и подготовить к приему запросов от клиентов. Если сервлет был обновлен, провести повторную инициализацию для обновления компонентов. При удалении сервлета — остановить обработку запросов, удалить сервлет из Tomcat.Функции контейнера сервлетов
- Обмен данными между сервлетом и клиентами;
- Организация клиентских сессий;
- Создание программной среды для функционирования сервлета;
- Идентификация и авторизация клиентов;
- В большинстве случаев — управление метаданными (заголовки, методы и прочее).
Установка сервлета
Польза Tomcat для разработки
Самое главное, Tomcat может выполнять роль полноценного web-сервера. Благодаря этому развертывание приложений происходит гораздо быстрее, чем было раньше.Также Tomcat может выступать в роли классического контейнера сервлетов, который можно встроить в более крупный веб-сервер.
Tomcat способствует обмену данными между клиентом и сервлетом, обеспечивает программный контекст для веб-приложений, берет на себя функции идентификации и авторизации клиентов, создание сессий для каждого из них.
Предоставляет очень удобное управление JSP-страницами. Фактически веб-сервер может отдавать только html. Jasper, компонент Tomcat, компилирует код, содержащийся в шаблонных тегах JSP-страниц в корректный HTML-файл, который получает клиент. Вся логика шаблонизации находится внутри Tomcat, позволяя добавлять даже сложные конструкторы в классическую форму HTML.
Ваш путь постижения дзена JavaEE не сможет пройти мимо сервлетов Java и их контейнеров. И чем раньше вы разберётесь с тем, как они взаимодействуют – тем легче будет проходить погружение в более тяжеловесные фрэймворки. Предлагаю познакомиться с контейнером под названием Tomcat, посмотрим как он устанавливается, запускается и работает с приложениями, а заодно напишем маленький сервлет для демонстрации идеи их использования.
Tomcat реализует спецификацию сервлетов и является веб сервером. Он умеет «на лету» подхватывать приложения. Начнём с самого начала. А для этого нам его необходимо скачать. Apache предлагают версии сервера как для 32х, так и для 64-разрядных машин. Также можно выбрать для загрузки либо инсталлятор, ло архив с потрохами сервера. Мы выберем второй вариант и разворачивать будем в среде windows. Качаем архив и распаковываем его в папку, желательно поближе к корню диска(c:\Tomcat). Перед запуском необходимо прописать переменные среды CATALINA_HOME и JAVA_HOME. Для этого идём Панель управления->Система-> ->Дополнительные параметры системы
Создаёте новую системную переменную с именем CATALINA_HOME и указываете для неё путь куда вы распаковали tomcat(у меня c:\tomcat). Также, если у вас не было, аналогичным образом создаёте ещё одну переменную JAVA_HOME и указываете где у вас лежит JDK (например C:\ProgramFiles\Java\jdk1.8.0_05). После этого рекомендую перезагрузить систему, иначе tomcat может отказываться запускаться без каких либо видимых причин. После всех манипуляций открываете командную строку, переходите в каталог с tomcat в папку bin, там есть два файла, startup.bat и shutdown.bat. Первый включает, второй выключает наш сервер. Запускаете startup.bat, после чего в отдельном окне должен начаться запуск сервера.
Теперь идём в браузер и открываем адрес localhost:8080 Если всё нормально, вы увидите страницу tomcat’а, на которой есть ссылки на примеры простых сервлетов, туториалы и т.д.
Конфигурация сервера производится с помощью *.xml файлов, находящихся в папке conf в корневом каталоге tomcat. Подробная документация по каждому тэгу есть на сайте Apache. Итак, сервер работает, а что же дальше? Как ему скормить наши страницы?
В корне tomcat есть папка webapps, которая ждёт-не дождётся пока ей кто ни будь не закинет файл с расширением war. war файлы – это специальные, так называемые web archives. Архивы, которые содержат в себе определённую структуру папок и файлов, которая подходит tomcat’у для запуска. Но перед созданием первого рабочего сервлета давайте подключим к IDEA наш сервер. Для этого открываем настройки, находим ApplicationServers, нажимаем + и выбираем сервер Tomcat.
Указываем директории, если IDEсама их не прописала
Жмём ок, apply и создаём новый проект. Не забываем установить галочку WebApplication
Далее даём имя нашему проекту, пусть это будет TestWebProject и видим что IDE уже приготовила для нас необходимую иерархию папок и даже что то набросала в файлы web.xml и index.jsp Файл web.xml является дескриптором проекта, в нём находятся инструкции для сервера о том как правильно его разворачивать. Index.jsp по умолчанию стартовая страница проекта, давайте попробуем что-нибудь написать в неё и запустить.
Хорошо, а теперь давайте напишем наш первый сервлет, добавляющий жизни нашей пробной страничке. Создаём jsp страницу redirect, которая направляет запрос на наш будущий сервлет
Перед тегом <html> пишем <jsp:forward page=”/redirect”></jsp:forward>
Следующим шагом необходимо в файле web.xml прописать так называемые servlet-mapping’и. Это необходимо для того, что бы контейнер «увидел» связь между строкой адреса браузера и страницами нашего проекта. Добавляем следующие строчки перед закрывающим тегом </web-app>
<welcome-file-list> указывает стартовую страницу. Итого мы получили то что запрос приходит на redirect.jsp, от туда перенаправляется в наш сервлет Direct, где к нему добавляются атрибуты(там же можно получить и данные о запросе, протокол, заголовок и т.д.) и перенаправляется на index.jsp
Осталось только оформить вывод отображения. В файле index.jsp видно как с помощью тега <%=%> можно получить данные из запроса и встроить их в html.
Для демонстрации работы приложения осталось запустить проект и открыть localhost:8080/redirect в браузере. Мы видим что при каждом обновлении страницы информация на ней динамически обновляется.
Надеюсь что вы поняли основные концепции работы Tomcatс сервлетами java. Успехов в освоении!=)
В данном документе представлена информация о базовой установке Apache Tomcat 7 на CentOS 7, первоначальной настройке и запуске приложений.
Общие сведения
Архитектура
Установка
В этой главе описана информация о базовой установке Apache Tomcat сервер 7 при помощи менеджера пакетов yum и из файла дистрибутива (с сайта проекта) на сервер CentOS 7. Apache Tomcat сервер – это серверное ПО для исполнения web-приложений, написанных на Java. Поэтому, предполагается, что у вас уже установлена Java Runtime Environment (JRE).
Установка с помощью менеджера пакетов
Проверить, установлен ли уже Apache Tomcat через менеджер пакетов, можно командой:
Установить Tomcat, используя менеджер пакетов, можно следующей командой:
После выполнения этой команды будет установлен сервер Tomcat 7 и все его зависимости. Кроме того, команда создаст пользователя tomcat.
Данное руководство подразумевает установку нескольких дополнительных пакетов, которые помогут управлять web-приложениями. Чтобы установить стандартную root-страницу (tomcat-webapps), менеджер веб-приложений и виртуальных хостов Tomcat (tomcat-admin-webapps), выполните команду:
После этого в каталоге tomcat/webapps появятся веб-приложения ROOT, examples, sample, manager и host-manager.
Установка из файла дистрибутива
В некоторых случаях установка ПО с помощью пакетного менеджера невозможна. Тогда используется способ установки из файла дистрибутива. Общий подход в работе Apache Tomcat остается таким же, но есть ряд отличий в установке и запуске.
Чтобы установить Apache Tomcat сервер, необходимо c сайта проекта (или дистрибутива ПО) взять файл apache-tomcat-7.0.67.zip и распаковать его в папку /home/user/tomcat, а потом перенести в /usr/share/tomcat7
Компиляция из исходного кода
Установка JDBC-драйвера
Неофициальным стандартом, которому следуют программы на языке Java, осуществляя доступ к реляционным базам данных, является JDBC. JDBC – это стандартный API-¬интерфейс, посредством которого Java-программы могут получать доступ к внешним менеджерам ресурсов, главным образом к реляционным базам данных, независящим от менеджера ресурсов способом. То есть Java-приложение, написанное с применением стандартных классов и интерфейсов JDBC, может переноситься на базы данных других производителей реляционных СУБД, если они поддерживают SQL, удовлетворяющий стандарту ANSI.
Далее, нужно добавить следующие строки внутри тега «Context» в файл /usr/shatre/tomcat/conf/context.xml:
Теперь JNDI-ресурс настроен.
После того, как вы разместили jar-файл драйвера в нужном каталоге, и внесли необходимые изменения в файл «context.xml» необходимо перезапустить Apache Tomcat
Настройка
Каталоги и файлы
После установки, в системе будут созданы следующие файлы и каталоги:
- /usr/share/tomcat/bin: содержит управляющие скрипты;
- /etc/tomcat: конфигурационные файлы (server.xml, web.xml, context.xml, tomcat-users.xml);
- /usr/share/java/tomcat: jar-файлы, используемые всеми расширениями Tomcat и веб-приложениями;
- /var/log/tomcat: log-файлы;
- /srv/tomcat/webapps: каталог, содержащий веб-приложения (сервлеты и JSP);
- /var/cache/tomcat/work: рабочий каталог Tomcat, который используется, в первую очередь, при преобразовании JSP-страниц в сервлеты;
- /var/cache/tomcat/temp: временные файлы.
В каталоге /usr/share/tomcat будут, также, размещены симлинки на указанные каталоги. Путь к основному каталогу Tomcat можно записать в переменную окружения $CATALINA_HOME (export CATALINA_HOME='/usr/share/tomcat/').
Для настройки сервера Tomcat используются следующие конфигурационные XML-файлы, размещенные в каталоге /usr/share/tomcat/conf/:
- server.xml: Общие настройки сервера (порты, виртуальные хосты и проч.).
- web.xml: Параметры, общие для ВСЕХ веб-приложений на текущем сервере. Настройки отдельных веб-приложений задаются в их собственных файлах /WEB-INF/web.xml (здесь можно провести аналогию с использованием файла .htaccess в Apache).
- context.xml: Общие настройки управления контентом.
- tomcat-users.xml: Список пользователей и групп (ролей).
Внимание: Прежде чем вносить какие-либо изменения в эти файлы, стоит сделать их резервные копии. Также следует обращать внимание на комментарии, которыми снабжены эти файлы
Настройка портов подключений и межсетевого экрана
Настройка портов подключений
Для того, чтобы сменить порт Apache Tomcat, отредактируйте файл конфигурации server.xml в каталоге /etc/tomcat/server.xml. Найдите строку "<Connector port="8080" protocol="HTTP/1.1"" и замените номер порта. Аналогично с портом 8009:
После этого перезапустите Tomcat для того, чтобы изменение настроек вступило в силу.
Настройка межсетевого экрана (firewall)
После установки Tomcat необходимо убедиться, что в файле конфигурации (/etc/firewalld/zones/public.xml) межсетевого экрана открыты порты, по которым будут обращения к серверу web-приложений из браузера. Чтобы открыть порт 8080 (который используется Tomcat по-умолчанию), выполните команду:
И перезагрузите сетевой экран
В результате вышеописанных действий, файл конфигурации межсетевого экрана будет выглядеть следующим образом (добавилась предпоследняя строка):
Настройка ролей и прав доступа пользователей
Для управления пользователями и ролями Tomcat используется файл tomcat-users.xml, расположенный в каталоге /usr/share/tomcat/conf. Например, чтобы пользоваться ранее установленным менеджером веб-приложений, необходимо добавить соответствующего пользователя на сервер Tomcat. Для этого нужно отредактировать вышеупомянутый файл, добавив в него данные о пользователе, который получит доступ к manager-gui и admin-gui (ранее установленному интерфейсу). Для этого используйте следующий формат, указав имя и пароль пользователя:
Файл содержит подсказки по его настройке. Чтобы создать, например, пользователя manager, который сможет управлять веб-приложениями через графическую оболочку (предопределенная роль manager-gui), нужно добавить в этот файл запись вида:
Сохраните и закройте файл tomcat-users.xml Обратите внимание, что в Tomcat 7 нет единой роли «manager», а существуют отдельные роли для администрирования:
- manager-gui - позволяет администрировать через веб-интерфейс;
- manager-script - позволяет администрировать через скрипты;
- manager-jmx - позволяет администрировать через JMX прокси;
- manager-status - дает доступ только к странице статуса сервера.
Например, для развертывания web-приложений через Maven необходимо присвоить пользователю роль «manager-script». В файле tomcat-users.xml описание этой роли будет выглядеть следующим образом:
Настройка переменных среды исполнения
Переменные среды окружения не используются Java-приложением Tomcat – вся настройка переменных происходит в стартовых скриптах. Но в некоторых случаях все же может понадобиться настройка некоторых переменных. Обратите внимание на то, что если у вас установлено несколько JVM, по умолчанию Tomcat попробует использовать OpenJDK, затем пробует JVM от Oracle, а затем иные JVM. Если у вас будут проблемы, связанные с переменными среды исполнения, выполните следующие шаги:
- Установите переменную среды CATALINA_HOME и CATALINA_BASE
- Установить переменную среды JRE_HOME или JAVA_HOME. Переменная среды используется для указания расположения JRE или JDK. Если определены обе переменные, то используется JRE_HOME.
- Остальные переменные среды опциональны: CATALINA_OPTS, JAVA_OPTS, CATALINA_PID, JSVC
- Использование скрипта setenv для установки переменных среды (рекомендуется)
Настройка сервера-разработки
Если вы используете Tomcat на сервере разработки и/или тестирования, вам могут быть полезны следующие опции:
Автоматическая перезагрузка страниц
Имеется возможность заставить Tomcat выполнять автоматическую перезагрузку после изменения кода. Нужно добавить атрибут reloadable со значением "true" в элемент <Context> файла conf/context.xml. Это весьма полезно в процессе разработки и отладки сервлетов, но не рекомендуется в процессе постоянной работы web-приложения.
Включение листинга каталогов
Для установки отображения списка файлов в каталогах (листинга), нужно поменять значение атрибута listings с ложного (false) на истинное (true) в блоке настроек сервлета по умолчанию ("default"-servlet) в файле conf/web.xml. Это бывает полезным при разработке и отладке веб-приложений, но не рекомендуется использовать на production-сервере по соображениям безопасности.
Запуск
Запуск и остановка Tomcat
Если вы установили Tomcat с помощью менеджера пакетов, то для запуска сервиса Tomcat введите следующую команду:
Для того, чтобы перезапустить сервис (например, после внесения изменений в настройки), используется следующая команда:
Чтобы сервис Tomcat автоматически запускался на этапе загрузки сервера:
Рисунок N. Приветственная страница Tomcat.
Запуск при установке без использования менеджера пакетов
Запуск Tomcat может быть осуществлен с использованием следующих команд:
Скрипт catalina.sh используется для ручного запуска и остановки сервера Tomcat. Для автоматического запуска можно использовать скрипт:
Завершение работы Apache Tomcat:
Файлы вашего приложения нужно расположить в каталоге /usr/share/tomcat7/webapps, более подробная информация по развертыванию приложений в главе «Запуск приложений».
Менеджер Web-приложений
Рисунок N. Окно авторизации.
Для входа в менеджер web-приложений необходимо воспользоваться теми именем пользователя и паролем, которые были заданы при настройке пользователей и ролей. Web Application Manager используется для управления приложениями Java; он позволяет запускать, останавливать, перезапускать и удалять приложения. Также Web Application Manager позволяет выполнять диагностику приложений (например, обнаруживать утечки памяти). Кроме того, в самом низу этой страницы находится информация о сервере.
Рисунок N Основное окно менеджера web-приложений.
В разделе «Manager» есть ссылка «Server Status», для получения детального описания состояния сервера.
В разделе Applications перечислены веб-приложения, установленные на данном сервере, и есть кнопки для управления ими:
- Start — запустить приложение;
- Stop — остановить приложение, при этом сам сервер и остальные приложения продолжат работу;
- Reload — перезапустить приложение;
- Undeploy — удалить приложение;
- Expire sessions with idle >= … minutes — считать веб-сессии пользователей истекшими по прошествии стольки-то минут без активности.
Раздел Deploy предназначен для инсталляции приложения из war-файла.
Diagnostics позволяет найти утечки памяти и принудительно запустить сборку мусора в JVM.
Web Application Manager сам является web-приложением, которое предварительно установлено в Tomcat. Следовательно, для того, чтобы Tomcat мог его использовать, это приложение должно быть запущено и присутствовать в списке приложений. Кроме менеджера web-приложенй (manager), в числе предустановленных часто бывает приложение для управления хостами (host-manager).
Установка и удаление web-приложений
Установка web-приложений
Существует два способа развертывания приложений.
Способ 1. Без использования менеджера приложений (Tomcat Web Application Manager):
- Скопировать war-файл в каталог <TOMCAT_HOME>\webapps
- Если Tomcat был запущен, то он сам развернет приложение из war-файла через несколько секунд (появится одноименный каталог). Либо самостоятельно перезапустите Tomcat, и он развернёт war.
- Проверьте работоспособность приложения, пройдя по соостветствующей ссылке.
Способ 2. С использованием менеджера приложений (Tomcat Web Application Manager):
После этого Tomcat самостоятельно скопирует war-файл к себе в каталог \webapps и развернет его. Web-приложение появится в списке Applications и вы сможете перейти к нему, кликнув по ссылке с соответствующим названием.
Удаление web-приложений Существует два способа развертывания приложений.
Способ 1. Без использования менеджера приложений (Tomcat Web Application Manager):
- Выключите Apache Tomcat сервер командой «systemctl stop tomcat»
- В каталоге \webapps удалите war-файл и одноименный каталог.
- В каталоге \conf\Catalina\localhost удалите одноименный xml.
- В каталоге \work\Catalina\localhost удалите одноименный каталог.
Последний шаг необязателен: удаляются временные файлы которые создал Tomcat.
Способ 2. С использованием менеджера приложений (Tomcat Web Application Manager):
Структура каталогов web-приложений
Все web-приложения размещаются в каталоге webapps (/usr/share/tomcat/webapps). Каждое приложение размещается в собственном, одноименном, каталоге с определенной вложенной структурой. Например, для приложения websample структура каталогов должны быть следующей: webapps/websample/WEB-INF/classes. Соответственно, создать эту структуру можно так:
Читайте также: