Как запустить спринг приложение из под сервера tomcat
Установка Tomcat
Чтобы использовать Tomcat в Java, его необходимо установить в систему. О том, как установить Tomcat можно прочитать в этой статье, где также рассматриваются и другие сервера приложений. Итак, имея работающий Tomcat, встроенный в IDEA, можно попробовать приготовить свой первый сервлет.Как создать веб-приложение
Как встроить приложение в работающий сервер
Несмотря на то, что встроенный Tomcat в IDEA — удобная фича, веб-приложение может быть перенесено на другой сервер и в другой контейнер. Рассмотрим вариант, когда необходимо встроить свое приложение в уже работающий сервер. Во-первых, необходимо дополнительно разобрать цель и функции контейнера сервлетов. Программа, которая приведена в примере выше — это веб-приложение. Класс TimeWorker — сервлет. Компоненты выполняют исключительно обработку запросов. Данные компоненты должны быть встроены в специальный контейнер сервлетов. Цель контейнера сервлетов — поддержка сервлетов и обеспечение их жизненного цикла. Простейший пример работы Tomcat — сканирование определенной папки с целью определить, появился ли в ней новый сервлет. Если да — инициализировать его и подготовить к приему запросов от клиентов. Если сервлет был обновлен, провести повторную инициализацию для обновления компонентов. При удалении сервлета — остановить обработку запросов, удалить сервлет из Tomcat.Функции контейнера сервлетов
- Обмен данными между сервлетом и клиентами;
- Организация клиентских сессий;
- Создание программной среды для функционирования сервлета;
- Идентификация и авторизация клиентов;
- В большинстве случаев — управление метаданными (заголовки, методы и прочее).
Установка сервлета
Польза Tomcat для разработки
Самое главное, Tomcat может выполнять роль полноценного web-сервера. Благодаря этому развертывание приложений происходит гораздо быстрее, чем было раньше.Также Tomcat может выступать в роли классического контейнера сервлетов, который можно встроить в более крупный веб-сервер.
Tomcat способствует обмену данными между клиентом и сервлетом, обеспечивает программный контекст для веб-приложений, берет на себя функции идентификации и авторизации клиентов, создание сессий для каждого из них.
Предоставляет очень удобное управление JSP-страницами. Фактически веб-сервер может отдавать только html. Jasper, компонент Tomcat, компилирует код, содержащийся в шаблонных тегах JSP-страниц в корректный HTML-файл, который получает клиент. Вся логика шаблонизации находится внутри Tomcat, позволяя добавлять даже сложные конструкторы в классическую форму HTML.
1- Цель статьи
В данной статье я покажу вам как применить приложение Spring Boot на Tomcat Server. Одна из характеристик Tomcat это легкость, объем Tomcat примерно 10MB, и один Java Web Server с открытым исходным кодом.
Удостоверьтесь что вы успешно установили Tomcat, если нет вы можете посмотреть как установить Tomcat в статье ниже:
На самом деле . приложение Spring Boot может быть упаковано в один исполняемый файл JAR (Executable JAR file). С данным файлом вы можете запустить приложение напрямую без необходимости применения никакого Web Server. Executable JAR file не может быть совместимым со всеми Web Server, поэтому если вы хотите применить определенный Web Server, вам нужно упаковать приложение Spring Boot в файл WAR.
2- Edit code
Здесь у меня есть проект Spring Boot, разработаный с помощью Eclipse IDE. При создании проекта Spring Boot у вас есть 2 выбора для упаковки данного проекта в WAR или JAR.
Когда вы создаете проект Spring Boot с опцией "Packaging = War", Eclipse создаст для вас 2 класса "AbcApplication & ServletInitializer". Файлы WAR подходят для применения (deploy) на Web Server.
При этом, если вы создаете проект Spring Boot с опцией "Packaging = Jar", будет создан только один класс AbcApplication. Приложение Spring Boot при упаковке в файл JAR, может выполнить (Executabe) самостоятельно без необходимости применения какого-либо Web Server. Но файл JAR не подходит для развертывания на Web Server.
Если у вас уже есть готовый проект Spring Boot, вам нужно изменить метод упаковки (Packaging) в WAR:
На Eclipse откройте файл pom.xml, и измените метод упаковки (packaging) в war.
Если ваш проект не имеет класс ServletInitializer, создайте его.
Добавьте следующий конфигурационный сниппет в pom.xml:
Если имеется более чем 1 класс Application в вашем проекте, скажите Spring Boot какой класс будет использоваться для вашего приложения.
3- Install Spring Boot
Следующий шаг это вам нужно использовать Maven чтобы создать файл WAR. Нужно удостовериться ваш Eclipse использует JDK вместо JRE, если нет то произойдет ошибка в данном процессе.
Нажмите на правую кнопку мыши в Project и выберите:
Run As/Maven Install
Теперь у вас будет файл WAR расположенный в папке target проекта, вы можете использовать данный файл для развертывания на Tomcat Server.
View more Tutorials:
Это онлайн курс вне вебсайта o7planning, который мы представляем, он включает бесплатные курсы или курсы со скидкой.
Узнайте, как настроить приложение Spring Boot для развертывания на сервере Tomcat.
1. введение
По умолчанию Spring Boot создает автономное Java-приложение, которое может работать как настольное приложение или быть настроено как системная служба, но существуют среды, в которых мы не можем установить новую службу или запустить приложение вручную.
В отличие от автономных приложений, Tomcat устанавливается как служба, которая может управлять несколькими приложениями в рамках одного процесса приложения, избегая необходимости в конкретной настройке для каждого приложения.
В этом руководстве мы создадим простое приложение Spring Boot и адаптируем его для работы в Tomcat.
2. Настройка приложения Spring Boot
Мы собираемся настроить простое веб-приложение Spring Boot, используя один из доступных шаблонов запуска:
Нет необходимости в дополнительных конфигурациях помимо стандартных @SpringBootApplication , поскольку Spring Boot заботится о настройке по умолчанию.
Мы добавляем простую конечную точку REST, чтобы вернуть нам некоторое допустимое содержимое:
3. Создание ВОЙНЫ весенней загрузки
Контейнеры сервлетов ожидают, что приложения будут соответствовать некоторым контрактам, которые будут развернуты. Для Tomcat контракт-это Servlet API 3.0 .
Чтобы наше приложение соответствовало этому контракту, мы должны внести некоторые небольшие изменения в исходный код.
Во-первых, нам нужно упаковать ВОЕННОЕ приложение вместо БАНКИ. Для этого мы меняем pom.xml со следующим содержанием:
Теперь давайте изменим окончательное имя файла WAR , чтобы избежать включения номеров версий:
Затем мы добавим зависимость Tomcat:
Наконец, мы инициализируем контекст сервлета, требуемый Tomcat, реализуя SpringBootServletInitializer интерфейс :
Мы должны учитывать, что эта новая установка делает наше приложение Spring Boot неавтономным приложением (если вы хотите, чтобы оно снова работало в автономном режиме, удалите предоставленную область из зависимости tomcat).
4. Развертывание ВОЙНЫ в Tomcat
Чтобы наш файл WAR был развернут и запущен в Tomcat, нам необходимо выполнить следующие действия:
-
и распакуйте его в папку tomcat
Скопируйте наш файл WAR из target/spring-boot-tomcat.war в папку tomcat/webapps/
Из терминала перейдите в папку tomcat/bin и выполните
- catalina.bat run (в Windows)
- catalina.sh выполнить (в системах на базе Unix)
Это была быстрая настройка Tomcat, пожалуйста, ознакомьтесь с руководством по установке Tomcat для получения полного руководства по установке. Существуют также дополнительные способы развертывания файла WAR в Tomcat .
5. Заключение
В этом кратком руководстве мы создали простое приложение Spring Boot и превратили его в действительное приложение WAR, которое можно развернуть на сервере 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 для размещенной аутентификации, авторизации и многофакторной аутентификации.
При разрабокте приложения мы будем использовать утилиту Ant для автоматизации действий и изучим, как писать простой тест с помощью библиотеки JUnit. Весь код будем писать в Eclipse IDE.
Статья написана на основе первой части руководства «Introduction to Spring MVC». Вам достаточно иметь лишь общее представление о Spring, чтобы прочитать статью с пользой.
Так что милости просим :)
Для конфигурирования приложения в Spring можно использовать несколько спобов. Наиболее популярный путь – вынесение конфигурации в xml-файлы. Также это наиболее традиционный путь, который используется в фреймворке с первого релиза. С введением аннотаций в языке Java 5 появилась возможность настраивать фреймворк с помощью них (с версии 2.5). В данной статье мы будем использовать традиционный XML-стиль.
Необходимые инструменты
- Java SDK 1.5,
- Apache Tomcat 6,
- Ant 1.7,
- Junit 4.x,
- Eclipse 3.
1. Создание структуры проекта
На установленный Eclipse поставим плагин Spring IDE. Создадим Spring-проект springapp, добавим папку war.
2. Создадим index.jsp
<html>
<head>
<title>Example :: Spring Application</title>
</head>
<body>
<h1>Example - Spring Application</h1>
<p>This is my test.</p>
</body>
</html>
В папке war создадим WEB-INF, и разместим в ней web.xml.
springapp/war/WEB-INF/web.xml
3. Деплоим приложение в Tomcat
Для развертывания приложения на сервере воспользуемся ant-скриптом (для начала работы с Ant достаточно прочитать заметку о нем в Википедии). Скрипт будет содержать цели для компиляции, построения и переноса приложения.
springapp/build.xml
springapp/build.properties
Установите корректно переменную appserver.home. У меня она указывает на C:/Program Files/Apache Software Foundation/Tomcat 6.0/.
Для создания пользователя Tomcat в файле appserver.home/conf/tomcat-users.xml сделайте запись:
<? xml version ='1.0' encoding ='utf-8' ?>
< tomcat-users >
< role rolename Blue">manager "/ >
< user username Blue">tomcat " password Blue">s3cret " roles Blue">manager "/ >
< / tomcat-users >
Выполним build-скрипт: Контекстное меню файла build.xml > Run As > Ant Build > Выбрать цели build, deploy во вкладке Targets.
4. Проверим работоспособность приложения
Запустите Tomcat и откройте в браузере страницу localhost:8080/springapp/.
5. Скачиваем Spring Framework
Скачайте фреймворк, если вы ещё этого не сделали, и распакуйте его.
На этом настройка окружения закончена. Далее мы приступаем к конфигурированию самого приложения на Spring MVC.
6. Изменим web.xml в папке WEB-INF
Мы определим сервлет-дисптечер DispatcherServlet (также называемый Front Controller). Его цель – диспетчеризация поступающих запросов. Сделаем для этого сервлета маппинг. Мы решили все запросы с урлами вида '.htm' направлять на сервлет-дисптечер.
springapp/war/WEB-INF/web.xml
<? xml version Blue">1.0 " encoding Blue">UTF-8 " ?>
< web-app version Blue">2.4 " xmlns Blue">java.sun.com/xml/ns/j2ee "
xmlns:xsi Blue">www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation Blue">java.sun.com/xml/ns/j2ee
java.sun.com/xml/ns/j2ee/web-app_2_4.xsd " >
< servlet >
< servlet-name > springapp < / servlet-name >
< servlet-class > org.springframework.web.servlet.DispatcherServlet < / servlet-class >
< load-on-startup > 1 < / load-on-startup >
< / servlet >
< servlet-mapping >
< servlet-name > springapp < / servlet-name >
< url-pattern > *.htm < / url-pattern >
< / servlet-mapping >
< welcome-file-list >
< welcome-file >
index.jsp
< / welcome-file >
< / welcome-file-list >
< / web-app >
Создадим файл springapp-servlet.xml. Этот файл содержит описания бинов (Java-файлов), которые будет использовать DispatcherServlet. Иными словами файл определяет контекст сервлета (WebApplicationContext). По стандартному соглашению именования для Spring Web MVC, сервлет springapp будет иметь файл описания бинов с именем springapp-servlet.xml.
Добавим описание бина (bean entry) '/hello.htm' с классом springapp.web.HelloController. Эта запись определяет Контроллер, который будет использовать приложение для обслуживания запроса с урлом '/hello.htm'. Для маппинга урла на объект, что его будет обрабатывать, фреймворк Spring Web MVC использует класс, реализующий интерфейс HandlerMapping. По умолчанию для маппинга используется класс BeanNameUrlHandlerMapping.
В отличие от DispatcherServlet, HelloController ответственный за обработку запроса на конкретную страницу. Его также называют 'Page Controller'.
springapp/war/WEB-INF/springapp-servlet.xml
7. Скопируем библиотеки в 'WEB-INF/lib'
- spring.jar (из spring-framework-2.5/dist);
- spring-webmvc.jar (из spring-framework-2.5/dist/modules);
- commons-logging.jar (из spring-framework-2.5/lib/jakarta-commons);
- junit-4.4.jar (из spring-framework-2.5/lib/ junit).
- Контекстное меню проекта > Build Path > Configure Build Path > Add External JARs > 'war/WEB-INF/lib';
- Контекстное меню проекта > Build Path > Configure Build Path > Add Library > Server Runtime > Tomcat.
8. Создадим Контроллер
Создадим Контроллер HelloController в пакете springapp.web.
springapp/src/springapp/web/HelloController.java
public class HelloController implements Controller <
protected final Log logger = LogFactory.getLog(getClass());
Это очень упрощенная реализация Контроллера. Мы будем её расширять в дальнейшем, и также будем использовать готовые реализации контроллеров из фреймворка.
В модели MVC Контроллер обрабатывает запрос и возвращает Модель-и-Вид (ModelAndView) – в нашем случае страницу 'hello.jsp'. Модель, которую возвращает Контроллер, на самом деле разрешается через ViewResolver. Так как мы не указали явно ViewResolver, то будет использоваться резолвер по-умолчанию, который просто направляет запрос на адрес ресурса, указанный в Модели-и-Виде. В дальнейшем мы это изменим.
Также мы указали логгер, с помощью которого сможем проверить выполненную приложением работу. При использовании Tomcat журнал работы приложения мы сможем просмотреть в файле catalina.out, который можно найти по адресу $/log.
9. Напишем тест для Контроллера
Тестирование – это один из самых важных этапов разработки сложных программных систем. Также это основополагающая практика при Agile software development. Многие считают, что наилучшее время написания тестов – втечение разработки, а не после. Так что, несмотря на простоту разработанного нами контроллера, мы напишем к нему тест.
Создадим тест HelloControllerTests, расширяющий класс TestCase из библиотеки Junit: New > Other > JUnit > JUnit Test Case.
Это модульный тест (unit test). Он проверяет, совпадает ли имя Вида, возвращаемое через handleRequest() с Видом, которое мы ожидаем: 'hello.jsp'.
springapp/src/springapp/web/HelloControllerTests.java
import org.springframework.web.servlet.ModelAndView;
import springapp.web.HelloController;
import static org.junit.Assert.*;
import org.junit.Test;
public class HelloControllerTests
@Test
public void testHandleRequestView() throws Exception <
HelloController controller = new HelloController();
ModelAndView modelAndView = controller.handleRequest( null , null );
assertEquals( «hello.jsp» , modelAndView.getViewName());
>
>
Для запуска теста используем меню: Run > Run As > JUnit Test.
Результат выполнения теста:
Ещё одной практикой Agile-разработки является непрерывная интеграция (Continuous Integration). Хорошей идеей будет запуск тестов с каждым билдом (build), для того, чтобы быть уверенным в правильном поведении своего кода (в идеальном варианте тесты запускаются автоматически при каждом билде).
10. Создадим Вид
Настало время создать Вид. В нашем случае это будет JSP-страница hello.jsp.
springapp/war/hello.jsp
<html>
<head>
<title>Hello :: Spring Application</title>
</head>
<body>
<h1>Hello - Spring Application</h1>
<p>Greetings.</p>
</body>
</html>
11. Скомпилируем и развернём приложение на сервере
Для файла build.xml добавим в Classpath библиотеку springapp\war\WEB-INF\lib\junit-4.4.jar, и выполним цели Build и Deploy (Контекстное меню файла build.xml > Run As > Ant Build… > вкладки Targets, Classpath).
12. Попробуем запустить приложение
13. Резюме
- Стартовая страница приложения – index.jsp. Служит для того, чтобы удостовериться в правильности установки окружения. Позднее мы ее изменим.
- Сервлет-диспетчер (DispatcherServlet или Front controller) с соответствующим файлом описания springapp-servlet.xml.
- Контроллер (Page controller) HelloController с базовой функциональностью – просто возвращает Модель-И-Вид. На данный момент Модель пустая. Полная реализация Модели будет сделана в дальнейшем.
- Модульный тест для контроллера HelloControllerTests, проверяющий, соответствует ли имя вида ожидаемому.
- Вид приложения – hello.jsp.
Ниже представлена структура проекта, которая должна быть после выполнения всех инструкций.
Читайте также: