В посте “Основы: создание сервлетов” мы создали первый сервлет. Запускали мы его из среды разработки NetBeans, но хорошо бы было знать как скомпилировать сервлет вручную и как добавить его к приложению.
Для компиляции вам необходимо иметь классы для сервлета там, куда указывает путь к классам. Эти классы находятся в следующих пакетах: javax.servlet и javax.servlet.http.
Tomcat начиная с версии 5 поддерживает версии API сервлетов 2.4 и 2.5; JAR-файл, путь к которому вам необходимо поместить в путь к классам, находится в каталоге: <инсталляционный_каталог_Tomcat>/lib/servlet-api.jar.
Следующая командная строка скомпилирует наш FirstServlet:
javac -classpath “C:\dmitrii.leontiev\Apache Tomcat 6.0.18\lib\servlet-api.jar” FirstServlet.java
Чтобы команда успешно выполнилась, необходимо предварительно перейти в каталог, в котором хранится FirstServlet.java.
Если сервлет использует и другие бибилиотеки, то путь к этим JAR-файлам следует также включить в путь к каталогам. В приведенной командной строке подключается только JAR-файл servlet-api.jar. Не забудьте изменить путь до JAR-файла перед выполнением команды!



#1 by Oleh on 3 Сентябрь 2009 - 21:49
Quote
И куда же положить наш скомпилированный сервлет дабы его запустить?
#2 by Дмитрий Леонтьев on 10 Сентябрь 2009 - 10:02
Quote
Хороший вопрос
При работе с NetBeans действительно не сразу понятно куда положить сервлет, скомпилированный вручную, но есть способ определить путь.
В контекстном меню проекта нажмите Deploy. Теперь посмотрите в консоль (у меня вкладка называется test_servlet (run-deploy)). Там должно быть что-то типа этого:
Строка In-place deployment at C:\Documents and Settings\dmitrii.leontiev\My Documents\NetBeansProjects\test_servlet\build\web указывает на то место, куда вам нужно складывать откомпилированные вручную сервлеты.
И не забудьте после того, как положите сервлет на свое место перезапустить Tomcat. В консоли (output) должна быть вкладка Apache Tomcat 6.0.18. Слева будет набор кнопок, которые позволяют управлять Tomcat. Одна из них “Перезапустить сервер”, но можно и просто остановить его и запустить заново.
Желаю успехов в экспериментах!
#3 by Ninja on 18 Октябрь 2009 - 23:57
Quote
Не получилось почему-то скомпилировать:
javac – не является внутренней или внешней командой …
Все делал по инструкции, в чем может быть проблема?
Заранее благодарен.
#4 by Дмитрий Леонтьев on 19 Октябрь 2009 - 8:58
Quote
Это значит что вы не установили переменные окружения. Как это сделать читайте в документации к JDK или, например, в FAQ форума программистов Vingrad на русском языке.
#5 by Алекс on 22 Май 2010 - 12:30
Quote
Спасибо за инфу!!
#6 by nightstalker on 28 Май 2010 - 17:49
Quote
C местом хранения класса сервлета (и прочих конфигов, jsp т.д.) понятно, но как tomcat узнает что они лежат именно в этой папке?
Например в Apache httpd надо указать директиву DocumentRoot, а у томката что?
#7 by Tanyadem on 7 Июнь 2010 - 0:09
Quote
получилось скомпилировать класс… но как получить war? ведь требуется именно он, чтобы залить приложение на сервер..
#8 by Tanyadem on 7 Июнь 2010 - 0:11
Quote
прошу прощения не увидела следующего поста ^___^