Изучаем JSP и Servlets. Часть 1. Настройка Tomcat 7 + Eclipse + Java 7

Настройка Tomcat 7 + Eclipse + Java 7

В данной статье я расскажу как настроить сервер Tomcat 7 для программирования в IDE Eclipse. Седьмая версия Tomcat поддерживает Java Servlets версии 3.0 и JSP версии 2.2. Конечно, предыдущие версии сервлетов и jsp тоже поддерживаются. Настройка потребует совсем немного времени, которое с лихвой окупится за счет слаженной работы среды разработки и сервера.

 

В принципе вам может оказаться достаточно пунктов данного содержания для уверенной настройки компонент. В противном случае, расширенные инструкции вы найдете в статьях по ссылкам.

  1. Установите Java. Скачать версии для Windows, Linux, Solaris можно здесь: http://www.oracle.com/technetwork/java/javase/downloads/. Версию для MacOS найдете здесь: http://support.apple.com/kb/DL1516. Я использую JDK 1.7.0_05, хотя любые версии Java 6 или 7 подойдут. Контейнеры сервлетов (в том числе и Tomcat 7) версии 3.0 требуют Java 6 и выше, они не будут работать с Java 5. Скачивайте набор утилит для разработки, а не одну виртуальную машину: JDK, а не JRE. При установке оставьте все настройки по умолчанию.
  2. Распакуйте Tomcat. Разархивируйте tomcat-7.0.27-preconfigured.zip в удобное для вас место. Либо вы можете скачать любую версию Tomcat 7 с сайта  Tomcat  и затем скопировать context.xml, server.xml, и  web.xml в <папка установки>/conf. Эти файлы содержат аннотации и комментарии к изменениям, сделанным в них.
  3. Установите и запустите Eclipse. Скачайте архив с сайта  http://www.eclipse.org/downloads/. Выберите вариант "Eclipse IDE for Java EE Developers". Сохраните и разархивируйте. В этой статье я использую последнюю версию Eclipse на 2012 год: Juno, v3.8. Запустите файл eclipse.exe в папке установки Eclipse и кликните "Workbench".
  4. Настройте Eclipse для совместной работы с Tomcat. Откройте вкладку Servers, которая находится внизу. Если вы не видите такую вкладку, то добавьте ее: Window -> Show View -> Servers. Далее правый клик -> New -> Server -> Apache -> Tomcat v7.0 -> укажите путь к папке установки Tomcat 7. 
  5. Запустите Tomcat. Правый клик на сервере Tomcat v7.0 во вкладке Servers, выберите "Start". Затем откройте http://localhost/ в браузере. Если сервер заработал, то вы скорее всего увидите страницу 404 ошибки, которая выдается сервером, либо страницу листинга файлов в пустой директории. Тогда скопируйте ROOT приложение как описано в следующей секции, перезагрузите страницу. Должна отобразиться главная страница Tomcat. Если вы получаете ошибку port 80 is already in use, то порт 80 занят каким-то иным приложением. Отключите его, либо измените порт, на который претендует Tomcat. Для этого двойным кликом откройте Tomcat внизу в Eclipse и измените порт с 80 на другой ("HTTP/1.1" в секции "Ports" справа). Рекомендуется всё же оставить 80 порт Томкату, а иное приложение закрыть.
  6. Скопируйте папку ROOT (приложения по умолчанию) в Eclipse. Eclipse забывает копировать приложения, добавленные его разработчиками в папку установки (ROOT, examples, docs и тд.) когда создает в воркспейсе папку Tomcat. Откройте C:\apache-tomcat-7.0.27\webapps и скопируйте  папку ROOT. Затем откройте воркспейс Eclipse, папку .metadata и запустите в ней поиск по "wtpwebapps". В результатах поиска должно быть что-то вроде C:\eclipse-workspace\servlets+jsp\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps (или .../tmp1/wtpwebapps если в Eclipse данный сервер не первый). Откройте папку wtpwebapps и вставьте ROOT (выберите  "да" в подтверждении слияния/замены файлов и папок). Затем перезагрузите страницу http://localhost/ и увидите главную страницу сервера Tomcat.
  7. Импортируйте и протестируйте пример веб-приложения. Скачайте test-app.zip и импортируйте в Eclipse: File -> Import -> General -> Existing Projects -> Select archive file -> Выберите скачанный архив. Откройте вкладу Servers и кликните правой кнопкой по Tomcat v7.0 Server, выберите "Add and Remove Projects". Выберите тестовый проект. Запустите Tomcat или перезапустите уже запущенный. Откройте ссылку http://localhost/test-app/ в браузере. Заметьте, что это приложение использует аннотацию @WebServlet технологии Servlets v3.0 для предоставления адресов различным сервлетам. Изучите исходный код для более подробной информации.
  8. Создайте и протестируйте новое приложение. В Eclipse выберите File -> New -> Project -> Web -> Dynamic Web Project. Проверьте что Target runtime это "Apache Tomcat v7.0". Скопируйте HTML, JSP и файлы сервлета из тестового приложения во вновь созданное. Соберите и протестируйте как описано выше.
  9. Настройте Eclipse. Window -> Preferences. В настройках вы найдете множество опций шрифтов, стилей и другое. Как минимум следует настроить местоположение JDK. Window -> Preferences -> Java -> Installed JREs и в этой секции проверьте что выбрано JDK, а не просто JRE. Если этого нет, то нажмите Add и выберите папку установки JDK. Возможно, вы также захотите отключить необязательные предупреждения о сериализации классов в сервлетах. Window -> Preferences -> Java -> Compiler -> Errors/Warnings и измените "Serializable class without ..."  на "Ignore".
  10. Добавьте полезные страницы документации по Servlets и JSP в закладки. Добавьте servlet 3.0, JSP 2.2, и EL 2.2 API в список закладок.
  11. Узнайте больше о создании Java Web-приложений! Если вы прошли предыдущие шаги, Eclipse и Tomcat настроены, то вы готовы к самой интересной и увлекательной части: научиться создавать реальные приложения! Для этой цели у вас есть два пути. И Servlets/JSP и JSF 2 отлично работают на Tomcat.
    • Servlet and JSP programming.  Это очень широко распространенная библиотека. Она используется тысячами крупных сайтов. Однако это относительно низкоуровневое программирование по стандартам современных Web-приложений.
    • JSF 2 programming. JavaServer Faces version 2 библиотека более высокого уровня. Рекомендуется большинству новых проектов.
Была ли статья полезна: 

Комментарии

Спасибо за очень подробный материал. Конечно вопрос не по теме, но все же. Столкнулся с проблемой написания web-сервисов в eclipse. Использую аннотацию @XmlElement, но при генерации wsdl аннотация не учитывается. Хочу спросить у автора, нет ли в eclipse какой-нибудь настройки для исползования (или игнорирования) аннотаций? Или какой модуль отвечает за использование аннотаций, т.е. сам eclipse, или tomcat, или какой-то класс? Вообщем в каком направлении искать? Спасибо.

А что конкретно не получается с аннотацией?

 

Речь, как я понимаю, о jaxb, стандартном API, поэтому проблема скорее всего не в настройках Eclipse, а в том, как вы используете аннотацию.

Проблема вот в чем: установил 2 web-сервера tomcat 7 и weblogic 12. Написал простенький класс, по нему создаю wsdl. Если создавать web-сервис на weblogic, то аннотации используются как надо. Если же создаю с помощью tomcat, аннотации не учитываются. Аннотации использую простейшие: @XmlElement(required = true, name="S1"). Пробую в одной и той же среде - eclipse. Т.е. не могу заставить tomcat использовать аннотации.

Спасибо

пункт 9. "Настройте Eclipse. Window -> Preferences. В настройках вы надете" надете.

Поправил, спасибо

В пункте ,где добавляем тестовый проект ошибка,я подрузил все идет хорошо,но сервер не может запуститься.Какие в данном случае решения?

винда 7 64 бит

без добавления проекта локал хост открывается

после нет,пытался свой проект создавать,та же ерунда

Та же проблема. Установил, открылась стартовая страница. Добавил зип архив проекта, добавил на сервер - сервер отказывается запускаться. ВЫ разобрались с тем, что это может быть?

Тестовое приложение не работает из-за того, что в проекте в IDE отсутствует библиотека Servlet-api.jar. То ли библиотеки томкета при установке в ClassPath не попадают, то ли еще что-либо, но факт есть факт. Добавил в проект библиотеку (перестали подсвечиваться в нем ошибки в IDE), добавил ее в BuildPath проекта, и проделал процедуру добавления на сервер (по мануалу) - и по ссылке оно запустилось.

Выдает

Error: Could not find or load main class test.Main

Stackoverflow не помогает(

Добавить комментарий

HTML

  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre> <p>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Поместите примеры вашего исходного кода в теги <code>...</code> or <source>...</source> и он будет красиво отформатирован.

Plain text

  • Поместите примеры вашего исходного кода в теги <code>...</code> or <source>...</source> и он будет красиво отформатирован.
  • Строки и параграфы переносятся автоматически.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <code> <source>
CAPTCHA
Пожалуйста, подтвердите, что вы человек.