Глава 1 (продолжение 1)
Разархивировал 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-mapping>
Код:
<servlet-name>time</servlet-name>
<servlet-class>org.example.TimeServlet</servlet-class>
</servlet>
<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
Назад |
Начало урока |
Вверх |
Вперед
Содержание