WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Настройка комбинации Apache JServ и GNU JSP

Настройка комбинации Apache JServ и GNU JSP


Дата публикации: 17-03-2013

Для установки Apache JServer и GNU JSP вам понадобятся:

HTTP Server Apache в исходных кодах ( я работаю на версии Apache1.3.12rusPL29.4)
Apache JServer в любом виде, но лучше конечно в исходниках (я пробовал на версии ApacheJserv1.1.1). необходимые файлы mod_jserv.so и ApacheJServ.jar (или сооответственно исходники этих файлов для последующей компиляции)
JDK 1.2 SE (Java Development Kit 1.2 Standart Edition) для Linux
JSDK обязательно версии 2.0 (другая версия не будет работать, проверено и описано в доке). Попросту говоря это файл jsdk.jar
JSWDK , я использовал версию JSWDK1.0.1 необходимый файл - servlet.jar (я рекомедую servlet-2.0-plus.jar из комплекта GNU JSP)
По желанию можно установить Apache JSSI (Server Side Include), если планируется их использовать (HTML тег ).необходимый файл - ApacheJSSI.jar
GNU JSP 1.0 (Java Server Pages). Необходимые файлы - gnujsp10.jar В поставке так же содержится файл servlet-2.0-plus.jar я бы рекомендовал его использовать вместо JSWDK (пункт 5), хотя разницы в работе я лично не заметил.
Если думается использовать базу данных нужен так же JDBC - драйвер.

Устанавливаем JServ - контейнер сервлетов

Для начала компилим Apache с поддержкой DSO (dynamic shared object). Опция configure --with-shared=max

Или конечно вкомпиливаем модуль прям в Apache (тоже пробовал, работает одинаково хорошо но это все же на пару действий сложнее и кому надо сам разберется тут граблей не замечено).

Следующим шагом устанавливаем JDK 1.2, это просто, но надо не забыть установить переменные окружения (добавить строчки в /etc/bashrc) Например если JDK утановлен в каталоге /opt/jdk

export PATH=.:$PATH:/opt/jdk/jre/bin:/opt/jdk/bin

export JAVA_HOME=/opt/jdk

export CLASSPATH=/opt/jdk/lib/tools.jar

Правильность установки JDK можно проверить запуская примерчики, которые с ним идут - примеры должны работать.

Внимание: Иногда в системе уже установлен JDK и чаще всего он лежит в /bin или в /usr/bin и тем самым раньше по путям. Обычно это JDK версии 1.1.x и нам он не подходит. Его надо снести. Для проверки надо запустить

java -version

И убедится в том что версия JDK действительно 1.2

Затем переходим в каталог где лежат исходники JServ и запускаем

./configure --prefix=/usr/local/jserv --with-apxs=/usr/sbin/apxs --with-jdk-home=/opt/jdk --with-JSDK=/opt/jsdk/lib/jsdk.jar --disable-debugging

Я по SCO - шной привычке ставлю все в /opt но это конечно по вкусу. Затем make и make install

Теперь осталось добавить в файл конфигурации Apache строки для JServ, это лучше сделать включив файл jserv.conf дериктивой Include /ect/httpd/conf/jserv/jserv.conf файла конфигурации httpd.conf

Внимание: Как показала практика если загрузить модуль loadmodule mod_jserv в файле httpd.conf а все остальные конфигурационные директивы для jserv расположить в файле jserv.conf то он их не воспринимает. Я не могу этого объяснить но вывод следующий - грузить модуль loadmodule mod_jserv и конфигурировать его надо в одном файле (или httpd.conf или jserv.conf).

Вот пример моего каталога /etc/httpd/conf (tar - архив). Чтобы настроить Jserv надо лишь скопировать подкаталог /etc/httpd/conf/jserv из этого архива в соответствующее место на сервере и добавить в свой файл httpd.conf строчку

Include /ect/httpd/conf/jserv/jserv.conf

Затем проправить соответствующие пути в файлах jserv.conf , jserv.properties и zone.properties

В файле jserv.properties определяется CLASSPATH для сервлетов строчки типа

wrapper.classpath=/home/httpd/servlets - именно сюда и надо ложить сервлеты которые вы будете использовать

wrapper.classpath=/home/httpd/beans - я предлагаю сделать отдельный каталог для JavaBeans которыми вы будите пользоватся из своих JSP только по одной причине, чтобы не путать их с сервлетами. Не забудте дать права на чтение этих и других каталогов CLASSPATH пользователю от которого работает Apache (обычно nobody).

Можно пускать сервер, но перед этим хочу добавить еще одно замечание - при старте Apache автоматически загружается виртуальная машина JAVA (JVM) ее легко увидеть по команде ps -ef Так вот при остановке сервера Apache она выгружается с задержкой и поэтому при команде /etc/rc.d/init.d/httpd restart не успевает перегрузится и падает. Чтобы этого не происходило необходимо добавить в секцию restart файла /etc/rc.d/init.d/httpd задержку:

........

restart)

$0 stop

sleep 5

$0 start

........

Работоспособность сервера и часть его настроек можно посмотреть зайдя на страничку http://localhost/jserv/

Эта страничка разрешена для просмотра только с той же машины на которой вы стоит Apache (это задано в jserv.conf) поэтому не пытайтесь зайти на нее по сети. После пробы http://localhost/jserv/ можно проверить основную зону сервлетов по умолчанию в ней находится тестовый сервлет http://localhost/servlet/IsItWorking (в каталоге /home/httpd/servlets лежит тестовый сервлет IsItWorking.class) Обратите внимание на две вещи - каталог называется servlets а URL надо набирать servlet и второе - названия сервлетов чувствительны к регистру. Существуют проблемы руссификации сервлетов лучше всего о них написал Вячеслав Педак
Устанавливаем GNU JSP - всего лишь сервлет работающий под JServ но существенно облегчающий работу по написанию и сопровождению сайта.

JavaServerPages представляют собой HTML с встроенными скриптами на JAVA - скриптлетами и имеют несколько преймуществ перед сервлетами:

Позволяют разграничить визуальное оформление (дизайн, HTML-обрамление) от динамического содержания и бизнес - логики.
Не требуют при изменении кода страницы рестарта сервера, как это требуют сервлеты.
Проще для понимания и не требуют знания Servlet API
В сочитании с JavaBeans позволяют удобно работать как с сессиями пользователей так и с глобальными объектами всего приложения.

Но это так лирическое отступление. Чтоб настроить JSP надо просто установить соответствие между расширением файла (обычно .jsp) и сервлетом-обработчиком. Обработчик получает запрос на страницу, генерирует из JSP - страницы Java-код (обычный сервлет), компилирует и исполняет его. Единственное что надо не забыть сделать при конфигурации JSP - указать каталог куда складывать полученные из JSP тексты сервлетов и их откомпилированные в классы файлы. А так же отдать права на запись в этот каталог пользователю откоторого запускается httpd. Этот каталог называют scratchdir в моем примере это /home/httpd/jsps

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Неизвестный автор:

    "ВКонтакте – место для лжи знакомым людям. Твиттер – место для выкладывания правды незнакомцам."

    Опрос

    Какой антивирус Вы используете?

    Kaspersky Antivirus
    NOD32
    Norton Antivirus
    Dr.Web
    Panda
    Аvast!
    ClamWin
    Другой...