Назад | Начало урока | Вперед
Содержание

Глава 1 (продолжение 1)

Разархивирование Tomcat и установка переменных среды

Разархивировал Tomcat в следующую директорию:

C:\apache-tomcat-5.5.29\

При попытке запустить ошибка:

C:\apache-tomcat-5.5.29\bin>startup.bat
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

То есть надо прописать CLASSPATH для переменной окружения JAVA_HOME.
Вопрос: А в каком именно файле надо прописывать переменные окружения и где он находится?
Тайна за семью печатями!

Ответ: Процедура установки переменных среды (переменные окружения системы) такова:
Пуск/Панель управления/Система
Откроется окно - "Свойства системы". Выберем вкладку "Дополнительно".
Далее нажмем кнопку "Переменные среды".
Далее установим "Системные переменные" и "Переменные среды для Alex"

Прописывать переменные мне надо так:

JAVA_HOME = C:\Program Files\Java\jdk1.6.0_18
CATALINA_HOME = C:\apache-tomcat-5.5.29
path = %JAVA_HOME%bin;%CATALINA_HOME%bin

После того, как переменные среды установили, Томкат запускается командой:

startup.bat
catalina.bat

Выйти из программы Томкат можно при помощи команды:

shutdown.bat

Итак, запускаем:

C:\apache-tomcat-5.5.29\bin>startup.bat
Using CATALINA_BASE: C:\apache-tomcat-5.5.29
Using CATALINA_HOME: C:\apache-tomcat-5.5.29
Using CATALINA_TMPDIR: C:\apache-tomcat-5.5.29\temp
Using JRE_HOME: C:\Program Files\Java\jdk1.6.0_18
Using CLASSPATH: C:\apache-tomcat-5.5.29\bin\bootstrap.jar

----------------
Можно запускать томкат напрямую (не забывайте, это почти обычное джава-приложение):

java -jar bootstrap.jar

P.S. bootstrap.jar находится в каталоге %TOMCAT_HOME/bin%

Но теперь, когда мы установили системные переменные, запускать Томкат напрямую
нет ни какой необходимости. Поэтому будем запускать через startup.bat
-----------------------------

Теперь, после запуска Томкат, в директории logs появилось несколько файлов.
В файле localhost 2010-04-27.log можно увидеть несколько ссылок, которые предлагается
посетить:

URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com],
RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com
AcceptEverythingRule: Redirect URL: http://jakarta.apache.org

То есть если убрать контекст, то ссылки такие:

http://www.cnn.com
http://www.yahoo.com
http://jakarta.apache.org

/////////////////////////////////

Типичные ошибки при установке переменных:

Tomcat был просто скачан, распакован из архива в корень диска + были определены сист. переменные.

------------------
Можно запускать томкат напрямую (не забывайте, это почти обычное джава-приложение):

java -jar bootstrap.jar

P.S. bootstrap.jar находится в каталоге %TOMCAT_HOME/bin%

----------------

Да. Стартовал, спасибо.
Логи появились наконец.
Цитата:
127.0.0.1 - - [15/Apr/2010:15:16:55 +0400] "GET / HTTP/1.1" 200 7777
127.0.0.1 - - [15/Apr/2010:15:16:55 +0400] "GET /tomcat.gif HTTP/1.1" 200 1934
127.0.0.1 - - [15/Apr/2010:15:16:55 +0400] "GET /asf-logo-wide.gif HTTP/1.1" 200 5866
127.0.0.1 - - [15/Apr/2010:15:16:55 +0400] "GET /tomcat-power.gif HTTP/1.1" 200 2324
127.0.0.1 - - [15/Apr/2010:15:16:55 +0400] "GET /favicon.ico HTTP/1.1" 200 21630

А в чём проблема с запуском через catalina start и как мне сделать старт нормальным?
-------------------
Проблему решил. Она была в моей невнимательности.
Я напортачил с путями сист. переменных.

если я задал пути
JAVA_HOME = c:\Groups\Java\jdk1.6.0_18\
CATALINA_HOME = c:\apache-tomcat-6.0.26\

а потом прописал
path = %JAVA_HOME%\bin;%CATALINA_HOME%\bin

то получилось наложение "\\"
---------------

ОС: WinXP. Tomcat был скачан, распакован из архива в корень диска
Вопрос: Как все-таки называется и где находится файл, в который мне надо прописать переменные окружения JAVA_HOME и CATALINA_HOME чтобы Tomcat запустился?

Теперь умею вставлять переменные окружения! Через окно Панель управления/Администратор/Система выбрать вкладку Прочее, нажать на кнопку Переменные среды

-------------
catalina.bat
tomcat.exe
startup.bat
shutdown.bat
-------------

------------------------------------
Попробуем запустить Томкат напрямую:

C:\apache-tomcat-5.5.29\bin>java -jar bootstrap.jar

В результате этой команды на DOS-экране появились надписи:

23.04.2010 11:02:24 org.apache.catalina.core.AprLifecycleListener init
INFO: Cannot find message associated with key aprListener.tcnValid

23.04.2010 11:02:24 org.apache.catalina.core.AprLifecycleListener init
INFO: Cannot find message associated with key aprListener.flags

23.04.2010 11:02:26 org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080

23.04.2010 11:02:26 org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8009

23.04.2010 11:02:26 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 3938 ms

23.04.2010 11:02:26 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina

23.04.2010 11:02:26 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.29

23.04.2010 11:02:26 org.apache.catalina.core.StandardHost start
INFO: XML validation disabled

23.04.2010 11:02:29 org.apache.catalina.core.ApplicationContext log
INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.
webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule:
Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.bal
ancer.rules.RequestParameterRule: Target param name: paramName / Target param va
lue: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balanc
er.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]

23.04.2010 11:02:30 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()

23.04.2010 11:02:30 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()

23.04.2010 11:02:31 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()

23.04.2010 11:02:31 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()

23.04.2010 11:02:31 org.apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080

23.04.2010 11:02:31 org.apache.coyote.ajp.AjpAprProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009

23.04.2010 11:02:31 org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource

23.04.2010 11:02:32 org.apache.catalina.startup.Catalina start
INFO: Server startup in 5906 ms

------------------

Далее запустил броузер, и в нем задал:

http://localhost:8080/

Появилась красочная страница: this is the default Tomcat home page
Это говорит о том, что сервер Томкат запустился!

///////////////////////

Далее в браузере зададим новый адрес, чтобы запустить наш сервлет:

http://localhost:8080/jhtp5/servlets/WelcomeServlet.html

Появилась страничка с кнопкой. Нажмем на кнопку, чтобы выполнить наш сервлет.

Вместо того, чтобы вывести наш сервлет, появляется страничка с ошибкой, смысл
которой: "The requested resource (/jhtp5/welcome1) is not available.",
то есть запрашиваемый ресурс недоступен:

HTTP Status 404 - /jhtp5/welcome1
--------------------------------------------------------------------------------
type "Status report"
message "/jhtp5/welcome1"
description "The requested resource (/jhtp5/welcome1) is not available."
--------------------------------------------------------------------------------
Apache Tomcat/5.5.29

Вот теперь вопрос: В чем дело? Почему не выполнился сервлет?

Придется зайти на сайт, посвященный протоколу HTTP.
Дополнительную инф о форматах URL можно получить на сайте www.w3.org/Addressing.
За дополнительной инф о протоколе HTTP обратитесь на сайт www.w3.org/Protocols/HTTP.
За инф по самым различным тематикам, связанным с Web можно обратиться на www.w3.org.

Ответ:

Ошибка в файле развертывания web.xml.
Класс сервлета должен быть объявлен внутри пакета

Ну у меня сервлет находиться в пакете package org.example;
Разве в этом проблема?

А сопоставить урл сервлету не забыл?

web.xml:
Код:

<servlet>
<servlet-name>time</servlet-name>
<servlet-class>org.example.TimeServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>time</servlet-name>
<url-pattern>/TimeServlet</url-pattern>
</servlet-mapping>

http://localhost:8080/jsp-examples/security/protected/index.jsp

Этот запрос, введенный в браузер, сработал правильно

http://localhost:8080/jsp-examples/security/protected/source.jsp

/source.jsp

Есть! Сработавший сервлет!!
http://localhost:8080/servlets-examples/servlet/HelloWorldExample


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz