Глава 1 (продолжение 1)
C:\apache-tomcat-5.5.29\bin>catalina.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
Usage: catalina ( commands ... )
commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina
version What version of tomcat are you running?
C:\apache-tomcat-5.5.29\bin>
В этом отчете видно почему не запустился Томкат! Ошибка в определении переменной CLASSPATH.
CLASSPATH: C:\apache-tomcat-5.5.29\\bin\bootstrap.jar
Мы видим здесь в пути двойной слеш перед bin. Здесь должен быть одинарный слеш.
Чтобы этой ошибки не было, системные переменные следует задать так:
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
Затем перезапустить компьютер.
Далее проверим задав адрес в браузере:
http://localhost:8080/
http://127.0.01:8080
Все в порядке. Вышла тестовая страница Томкат!
-------------------------
Далее о переменной classpath и компиляции Java-программ.
Компиляция. Для компиляции сервлетов требуется добавить такой jar в
CLASSPATH "C:\Program Files\Apache Software Foundation\Tomcat5.0\common\lib\servlet-api.jar".
Убедитесь, что у вас действительно этот jar есть. Он может ещё называтся servlet.jar.
Итак, добавили, компилируем файл:
CLASSPATH "C:\apache-tomcat-5.5.29\common\lib\servlet-api.jar".
C:\apache-tomcat-5.5.29\common\lib\servlet-api.jar
-------------------------
Куда отправляется результат
Параметр -d указывает конечную директорию (обычно называемую bin, build или classes):
javac -d classes -classpath "C:\Program Files\Java\jdk1.6.0_18\lib\servlet-api.jar" WelcomeServlet.java
Ура!!! Откомпилировалась!! Class-файл находится в директории classes
javac -d classes -classpath "C:\Program Files\Java\jdk1.6.0_18\lib\servlet-api.jar" TestingServlet.java
Откомпилировалась, но при запуске из каталога classes выходит ошибка:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/H
tpServlet
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
... 12 more
Could not find the main class: WelcomeServlet. Program will exit.
Попробуем запустить из каталога bin:
C:\Program Files\Java\jdk1.6.0_18\bin>java WelcomeServlet
Exception in thread "main" java.lang.NoClassDefFoundError: WelcomeServlet
Caused by: java.lang.ClassNotFoundException: WelcomeServlet
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: WelcomeServlet. Program will exit.
java classes.WelcomeServlet
java WelcomeServlet
javac -d classes -classpath "C:\Program Files\Java\jdk1.6.0_18\lib\servlet-api.jar" WelcomeServlet.java
javac -classpath "C:\Program Files\Java\jdk1.6.0_18\bin\servlet-api.jar" WelcomeServlet.java
javac -d classes -classpath "C:\apache-tomcat-5.5.29\common\lib\servlet-api.jar" WelcomeServlet.java
javac -d "C:\apache-tomcat-5.5.29\webapps\jhtp5\WEB_INF\classes" -classpath "C:\apache-tomcat-5.5.29\common\lib\servlet-api.jar" WelcomeServlet.java
Эта инструкция сработала!
Обратите внимание на параметры -d и -classpath программы javac:
-d "C:\apache-tomcat-5.5.29\webapps\jhtp5\WEB_INF\classes"
-classpath "C:\apache-tomcat-5.5.29\common\lib\servlet-api.jar"
Теперь в указанной параметром -d папке появился класс WelcomeServlet.class.
далее попробуем запустить браузер с прежним адресом:
http://localhost:8080/jhtp5/servlets/WelcomeServlet.html
или так:
http://localhost:8080/jhtp5/welcome1
Еще другой пример прокомпилируем:
javac -d "C:\apache-tomcat-5.5.29\webapps\myapp\WEB_INF\classes" -classpath "C:\apache-tomcat-5.5.29\common\lib\servlet-api.jar" TestingServlet.java
Эта инструкция сработала!
далее попробуем запустить браузер с адресом:
http://localhost:8080/myapp/test
http://localhost:8080/myapp/TestingServlet
http://localhost:8080/myapp/WEB_INF/classes/TestingServlet
http://localhost:8080/myapp/TestingServlet
Выходит ошибка: 404
////////////////////////////
-------------------------
http://localhost:8080/%app name%/test
http://localhost:8080/%myapp%/test
-------------------
Для запуска приложения из гл 10 Дейтел:
Сначала запустим Томкат:
java -jar bootstrap.jar
catalina.bat
startup.bat
shutdown
Затем в браузере введем следующий URL:
http://localhost:8080/jhtp5/servlets/WelcomeServlet.html
Можно запустить то же предложение без использования html-файла так:
http://localhost:8080/jhtp5/welcome1
--------------------------------
http://localhost:8080/%app name%/test
http://localhost:8080/myapp/test
Назад |
Начало урока |
Вверх |
Вперед
Содержание