Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2013_1 / КСТ / Разработка веб-приложений.pdf
Скачиваний:
160
Добавлен:
23.02.2015
Размер:
2.74 Mб
Скачать

Запуск сервера приложений администратором выполняется командой asadmin start-domain.

Домен (по умолчанию domain1) — набор экземпляров приложений со следую-

щими атрибутами:

общий порт для приложений (по умолчанию 8080);

общий порт для управления 4848;

имя администратора и пароль.

Остановка сервера производится командой asadmin stop-domain.

Запуск консоли администратора выполняется из браузера запросом URL http://localhost:4848/asadmin/.

2.4.Структура приложения

Вархитектуре Java EE веб-компоненты и статические файлы данных, например, рисунки, называются ресурсами. Веб-модуль — минимальный блок для развер-

тывания и использования. Он может содержать следующие файлы:

классы утилит сервера (доступ к базам данных, обработка платежных карт и

др.). Часто это компоненты архитектуры JavaBeans;

классы клиентской части приложения (апплеты и утилиты).

Веб-модуль имеет специальную структуру. Верхний уровень — это корень при-

ложения, содержащий XHTML-страницы, клиентские классы, архивы, статические ре-

сурсы. Корень содержит папку с именем WEB-INF, которая имеет следующие файлы

ипапки:

web.xml — дескриптор развертывания приложения;

дескрипторы файлов библиотек тегов;

classes — папка для классов серверной части приложения (сервлеты, утили-

ты, компоненты JavaBeans);

tags — папка с файлами тегов, являющимися реализацией библиотек тегов;

lib — папка с архивами JAR для использования в классах серверной части.

Если ваш модуль сети содержит только страницы XHTML и статические файлы, то не требуется включать файл web.xml. Вы можете также создать специализированные подкаталоги (директории пакетов) в корне приложения или в директории

/ WEB-INF/classes.

Приложение может иметь вид JAR-архива, но с расширением WAR. В этом

случае архив должен содержать дескриптор оперативного (runtime) развертывания —

файл sun-web.xml, расположенный в папке WEB-INF. Это XML-файл с информацией о

корневой папке приложения, отображениях используемых клиентами имен на ресур-

сы сервера.

Структура веб-модуля, способного быть развернутым на веб-сервере, приведе-

на на рис. 2.2. Упаковка веб-модуля в WAR-архив производится доступными для про-

граммиста инструментами. В главе 17 описана утилита Ant, позволяющая создавать

такие архивы из структур папок, показанных на рис. 2.2.

Развертывание приложения можно выполнить несколькими способами:

копированием WAR-файла в папку domain-dir/autodeploy;

использованием консоли администратора;

использованиемутилитыAnt ссоответствующимфайломкомпоновки(см.главу17).

34

веб-модуля

Рис. 2.2. Структура веб-модуля

2.4.1. Отладка приложений

Основным способом отладки приложений является анализ журнальных сообщений в файле /logs/server.log, содержащем как сообщения сервера, так и сообщения приложения, направляемые туда методом System.out.println из программ на языке

Java, и в файле ServletContext.log.

2.4.2. Архивирование веб-модуля

Модуль должен быть упакован в WAR-файл, если вы хотите передавать вебмодуль заказчикам. Вы упаковываете веб-модуль в WAR, выполняя команду jar в директории веб-модуля или используя утилиту Ant или средство NetBeans IDE по выбору.

Для построения архива средствами NetBeans IDE нужно выполнить следующие

шаги:

1.Выбрать File→Open Project.

2.В диалоге Open Project перейти в папку проекта.

3.Установить переключатель Open asMain Project.

4.Кликнуть Open Project.

5.На закладке Projects кликнуть правой кнопкой по проекту и выбрать Build.

Развертывание WAR-файла производится несколькими способами по выбору:

1)копированием WAR в директорию domain-dir/autodeploy/;

2)использованием консоли администратора;

3)выполнением asadmin или ant для развертывания WAR;

4)использованием NetBeans IDE.

35

Корневой контекст (context root) идентифицирует веб-приложение на сервере

Java EE. Он определяется, когда вы развертываете веб-модуль. Корневой контекст

должен начаться с первоначального символа «слэш» (/) и заканчиваться концом строки. В веб-модуле, упакованном для развертывания на сервере, контекстный корень

помещается в файл sun-web.xml.

Чтобы редактировать корневой контекст, сделайте следующее:

1.Расширьте дерево проекта в окне Projects NetBeans IDE.

2.Расширьте узлы Web Pages и WEB-INF проекта.

3.Дважды щелкните по sun-web.xml.

4.В панели редактора выберите Edit As XML.

5.Редактируйте элемент context root.

Для того чтобы развернуть WAR в утилите asadmin, откройте терминальное

окно и выполните команду:

asadmin deploy full-path-to-war-file

Для того чтобы развертывать WAR средством Ant, откройте терминальное окно,

перейдите в директорию, где вы построили и упаковали WAR, и выполните команду ant deploy

Для развертывания WAR в среде NetBeans IDE нужно выполнить следующие

действия:

1.Выбрать File→Open Project.

2.В диалоге Open Project перейти в проект и открыть его.

3.На закладке Projects правой кнопкой кликнуть по проекту и выбрать

Deploy.

2.5. Конфигурирование приложений

Приложения конфигурируются настройкой элементов в дескрипторе раз-

вертывания.

2.5.1. Отображение адреса запроса (URL) в веб-компоненты

Когда запрос получен контейнером сервера, он должен определить, какой компонент будет обрабатывать запрос. Это делается с помощью отображения адреса URL запроса в веб-приложение и веб-компонент. Путь URL содержит контекстный корень и псевдоним:

http://host:port/context-root/alias

Псевдоним идентифицирует компонент, который должен обработать запрос.

Путь псевдонима должен начаться с форвардного слеша (/) и заканчиваться концом строки или шаблоном с расширением (например, *.jsp). Вы можете отредактировать

файл web.xml в NetBeans IDE следующим образом.

Чтобы установить дисплейное имя:

1)кликнуть General в редакторе для открытия общего вида;

2)ввести имя в поле DisplayName.

Чтобы задать отображение сервлетов:

1)кликнуть Servlets в редакторе и открыть просмотр сервлетов;

2)кликнуть Add Servlet;

3)в диалоге Add Servlet ввести имя в поле ServletName;

36

4)ввести значение servlets.имя в поле Servlet Class;

5)ввести /<name> в поле URL Pattern;

6)нажать кнопку OK;

7)повторить для всех других сервлетов.

2.5.2. Задание файла приглашения (WelcomeFiles)

Механизм файлов «Добро пожаловать» позволяет определять список фай-

лов, используемых для добавления в URL запроса при отсутствии имени файла-

обработчика (называется правильный частичный запрос). Например, вы определите файл приглашения welcome.html. Когда клиент просит URL, как, например, host:port/ webapp/directory, где директория не отображена в servlet, или страницу XHTML, то кли-

енту будет отправлен файл host:port/webapp/directory/welcome.html.

Если контейнер сети получает правильный частичный запрос, он изучает спи-

сок файлов «добро пожаловать», добавляет в частичный запрос каждый файл «добро пожаловать» в определённом порядке и проверяет, подходит ли статический ресурс

или servlet для отображения в запрос URL. Контейнер сети посылает запрос в первый

соответствующий ресурс WAR. Если файл «добро пожаловать» не определен, то сер-

вер использует файл index.xhtml по умолчанию. Если нет файла «добро пожаловать»

и файла index.xhtml, то сервер возвращает листинг директории.

2.5.3. Задание параметров инициализации

Компоненты в веб-модуле разделяют объект, который представляет их прикладной контекст. Вы можете передать параметры инициализации в контекст или в вебкомпонент. Чтобы добавить контекстный параметр в NetBeans IDE, нужно сделать

следующее:

1)открыть проект;

2)распахнуть узел проекта в окне Projects;

3)распахнуть узел Web Pages и WEB-INF;

4)дважды щелкнуть web.xml;

5)вызвать закладку General в редакторе;

6)выбрать узел Context Parameters;

7)нажать Add;

8)в диалоге Add Context Parameter:

ввести имя контекстного объекта в поле ParamName;

ввести параметр, передаваемый контекстному объекту в поле Param Value;

нажать OK.

Кроме того, вы можете напрямую отредактировать XML-файл с именем web. xml, щелкая по закладке XML редактора, чтобы добавить тег контекстного параметра context-param, содержащий два следующих элемента:

param-name для задания context object;

param-value для задания передаваемого параметра в объект контекста.

2.5.4. Задание отображения ошибок

Когда происходит ошибка в процессе выполнения приложения, вы можете пере-

дать пользователю специфический экран сообщения об ошибке в зависимости от типа

ошибки. Можно задать страницу сообщений об ошибках для любого кода статуса ответа или программного исключения.

37

Соседние файлы в папке КСТ