JavaRush/Java блог/Архив info.javarush/tomcat – коротко для windows
Izhak
22 уровень

tomcat – коротко для windows

Статья из группы Архив info.javarush
участников
У меня возникло желание установить tomcat, и сделать несколько хостов для начала на локальном компьютере. слонИтак, сперва я с сайта установил сервис tomcat. Он элементарно настраивается, но без подробного исследования неясно, каких пользователей и с какими паролями надо забивать в нетбинс, чтобы он скомпилировал и залил проект. Поэтому я решил потратить время и воспользоваться теми описаниями, что легко найти в интернете по запросу «tomcat настройка», или на страничке tomcat. Итак, если мы не идём простым путём (в дальнейшем выяснилось, что и путь, лежащий через установку инсталлятором тоже верен), то последовательность будет следующей.
  1. С сайта http://tomcat.apache.org сохраняем zip-архив, и распаковываем его в папку с путём без пробелов и всяких сложных символов, например, «E:\tomcat\apache-tomcat-8.0.15».

  2. Скачиваем последнюю версию JDK с сайта оракл https://www.oracle.com и ставим её тоже в папку с названием без пробелов (если так не сделать, и установить в папку X:\Program Files\... , то затем, когда мы будем править батник, нам придётся неявно указывать имя папки, это не очень хорошо, почему- будет видно дальше.

  3. Открываем «e:\tomcat\apache-tomcat-8.0.15\bin\». Видим много батников и sh сценариев.

    Открываем «catalina.bat». Там видим много закомментированных строк с переменными окружения, которые должны быть объявлены, или которые можно объявлять, а можно и нет.

    Те переменные, которые должны быть объявлены — это

    • set CATALINA_HOME="e:\tomcat\apache-tomcat-8.0.15"
    • set JAVA_HOME="e:\ProgramFiles\Java\jre1.8.0_25"

    причём желательно это сделать в отдельном файле с именем setenv.bat, для этого просто в текстовом редакторе вбиваем эти две строки и сохраняем файл с таким именем в «e:\tomcat\apache-tomcat-8.0.15\bin\»

    Примечание: если папка с установленным jre содержит пробелы, то имя должно состоять из максимум шести первых букв реального названия папки, и если такое сочетание по алфавиту в диске первое, то ~1, если второе, то ~2, и т. д.

    Например, название папки, внутри которой находится jre, “C:\Program Files\JRE”, а кроме того есть папка «C:\places\», тогда вторая строчка в setenv.bat будет

    • set JAVA_HOME="e:\Progra~1\Java\jre1.8.0_25", или
    • set JAVA_HOME="e:\P~2\Java\jre1.8.0_25"

    Естественно, это не очень хорошо, особенно когда у вас две папки “Program Files” и «Program Files (x86)». В таком случае, чтобы проименовать правильно папку с JRE, придётся поэкспериментировать ~1 или ~2.

  4. Пробуем запустить, для этого из текущей директории запускаем cmd.exe, в нём запускаем startup.bat . Это нам даст контроль над тем что происходит. Если всё пошло хорошо, то запустится окно Java-приложения в режиме консоли, в котором после запуска будет написано время старта, если же что-то пошло не так, например, папки в setenv.bat указаны неверно, мы увидим сообщения об ошибках.

  5. Если глобальные переменные сконфигурированы верно, и запустилось окно java – консоли, но какие-то настройки сделаны неверно, то ошибки можно посмотреть в папке «e:\tomcat\apache-tomcat-8.0.15\logs\».

  6. Если пункт 4 выполнен полностью успешно, то в окне браузера можно набрать 127.0.0.1:8080 и в окне будет окно tomcat сервера.

  7. Но если мы захотим войти в настройки Host Manager, и т. д., то нас попросят ввыести логин и пароль. Взять их негде, но в папке conf есть файл tomcat-users.xml, который, если открыть, то сначала кажется правильным, но роли и пользователи там взяты в комментарий . Да и роли, и пользователи там явно неверные. Итак, что же делать.

  8. Для ответа на вопрос, какие роли должны быть, и каких пользоватей назначать, чтобы войти в админку, на страничке 127.0.0.1:8080. Например, про роли manager можно узнать на страничке ttp://127.0.0.1:8080/docs/manager-howto.html, и вместо одного пользователя admin, как было раньше, теперь есть два пользователя: admin-gui и admin-script.

    Более подробно про работу с паролями здесь http://127.0.0.1:8080/docs/realm-howto.html

    Итак, открываем файл conf\tomcat-user.xml и добавляем там после закомментированного блока с логинами и паролями

    <!--
      NOTE:  By default, no user is included in the "manager-gui" role required
      to operate the "/manager/html" web application.  If you wish to use this app,
      you must define such a user - the username and password are arbitrary.
    -->
    <!--
      NOTE:  The sample user and role entries below are wrapped in a comment
      and thus are ignored when reading this file. Do not forget to remove
      <!.. ..> that surrounds them.
    -->
    <!--
      <role rolename="tomcat"/>
      <role rolename="role1"/>
      <user username="tomcat" password="tomcat" roles="tomcat"/>
      <user username="both" password="tomcat" roles="tomcat,role1"/>
      <user username="role1" password="tomcat" roles="role1"/>
    -->
      <role rolename = "admin-gui"/>
      <role rolename = "admin-script"/>
      <role rolename = "manager-gui"/>
      <role rolename = "manager-script"/>
      <role rolename = "manager-jne"/>
      <user username = "superadmin" password = "pass" roles="admin-gui, admin-script, manager-gui, manager-jne, manager-script" />
    </tomcat-users>

    Таким образом, мы получим пользователя superadmin с паролем pass.

  9. Про то, как отлаживать работу приложений и т. д. http://wiki.apache.org/tomcat/HowTo#How_can_I_access_members_of_a_custom_Realm_or_Principal.3F

  10. Tеперь при помощи скриптов shutdown.bat и startup.bat перезапускаем сервер, и можем войти в админку.

  11. Создаём виртуальные хосты. Для этого посмотрим сюда http://wiki.apache.org/tomcat/TomcatDevelopmentVirtualHosts

  12. можно ещё создать в админке ссылку на хост (Это то же самое, что мы сейчас сделали).

  13. При создании новых записей в hosts для win8, сначала копируем файл в другую папку, там правим, и затем пишем обратно. После этого рестарт компьютера или сервера не нужен.

И в заключении в бесплатной версии IntelliJ Idea не поддерживает web, поэтому для начала можно попользоваться нетбинсом. https://netbeans.org/kb/trails/java-ee_ru.html https://netbeans.org/kb/docs/web/ajax-quickstart_ru.html
Комментарии (25)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
AlexandrRS
Уровень 41
5 августа 2015, 11:27
Не могу настроить deploy через maven. Maven постоянно находит оправдания, чтобы не деплоить. Ссылки все скурил на эту тему, начиная от мавена, заканчивая томкэтом.
вот кусок pom.xml с вопросами:
<code><distributionManagement>
	<downloadUrl>http:/localhost:8080/alex</downloadUrl>
	<site>
		<id>что сюда писать?</id>
		<name>что сюда писать?</name>
		<url>что сюда писать?</url>
	</site>
	<repository>
		<uniqueVersion>false</uniqueVersion>
		<id>что сюда писать?</id>
		<name>что сюда писать?</name>
		<url>что сюда писать?</url>
		<layout>что сюда писать?</layout>
	</repository>
</distributionManagement></code>
tanzwud
Уровень 34
5 августа 2015, 12:24
Если не можете найти инфу в инете думаю не стоит самому собирать проект. Maven archetype в помощь.
Томкат
или
немного устаревший
AlexandrRS
Уровень 41
5 августа 2015, 12:41
Возможно Вы правы, но я другого мнения. Я увидел maven (как и tomcat, hibernate, spring, mysql, junit) 5 дней назад и мне стало утомительно руками копировать war в папку webapp. Я уверен, что требуется больше 5 дней на охват этих технологий и, возможно, я где-то что-то упускаю…
Спасибо за поддержку!
Izhak
Уровень 22
5 августа 2015, 17:01
а зачем war копировать в папку webapp? например, я пока пользуюсь нетбинсом- он сам разворачивает, а если надо на сайт- так здесь вобщем-то тоже нетбинсом можно. Хотя я руками копирую.
AlexandrRS
Уровень 41
5 августа 2015, 17:30
Я привык к idea, не хочу пока прыгать по другим IDE, но netbeans стоит. Все равно хотелось деплоить мавеном, чтобы уж наверняка. Хотя, судя по тому, что я выяснил, через deploy закидывать war в томкэт — это по воробьям…
blacky
Уровень 23
5 августа 2015, 20:29
Деплоем в мавене пользуются, когда нужно залить на удаленный сервер. А тут copy-paste war'ка, либо maven:install.
cerebellum
Уровень 7
20 апреля 2015, 23:54
Кстати, на днях ковырял TomCat.
Обновил JRE и пошло поехало. Запускаться напрочь отказывается. Но вопрос не в этом.
Ввиду скитаний по каталогам JDK, JRE, Tomcat назрел вопрос:«Почему при установке JDK (которрый в свою очередь предлагает установить JRE), независимо от того установил JRE или нет, в папке jdk появляется каталог jre. Зачем он нужен? Если это среда исполнения, то к чему предлагать/устанавливать её отдельно?»

Есть просвещёные?
nicolas
Уровень 36
29 мая 2015, 20:43
JRE которая устанавливается внутри JDK используется исключительно для запуска java файлов, которые пишутся в IDE с использованием этого JDK. При попытке сделать этот JRE программой по умолчанию для открытия java файлов — оно ругается, говорит нельзя. Поэтому ставят еще отдельно JRE для запуска jar, java из системы, как приложение по-умолчанию.
timurnav
Уровень 21
15 февраля 2015, 00:20
как же всё-таки важно изучать скачанные директории на предмет наличия файлов *.txt очень много интересного можно найти
timurnav
Уровень 21
11 февраля 2015, 20:58
мой вопрос может показаться тупым, но почему у меня версия jre7, а не \jre1.8.0_25

содержимое setenv.bat
set CATALINA_HOME="E:\TomCat\apache-tomcat-8.0.18"
set JAVA_HOME="C:\Progra~1\Java\jre7"

а вот что выдала консоль cmd
E:\TomCat\apache-tomcat-8.0.18\bin>startup.bat
Using CATALINA_BASE:   "E:\TomCat\apache-tomcat-8.0.18"
Using CATALINA_HOME:   ""E:\TomCat\apache-tomcat-8.0.18""
Using CATALINA_TMPDIR: "E:\TomCat\apache-tomcat-8.0.18\temp"
Using JRE_HOME:        ""C:\Progra~1\Java\jre7""
Using CLASSPATH:       ""E:\TomCat\apache-tomcat-8.0.18"\bin\bootstrap.jar;"E:\T
omCat\apache-tomcat-8.0.18"\bin\tomcat-juli.jar"
E:\TomCat\apache-tomcat-8.0.18\bin>


при этом на долю секунды появилась новая консоль и пропала (так и должно быть?) адрес 127.0.0.1:8080 не открывается, папка log отсутствует…

как с этим жить-то теперь?
Izhak
Уровень 22
12 февраля 2015, 00:13
Хорошо жить надо :)

по порядку
но почему у меня версия jre7, а не \jre1.8.0_25
т.к. вы когда-то установили версию 7, а версию 8 ещё не устанавливали. Как установить? Набираете в яндексе jre, и первая же ссылка ведёт вас на страницу загрузки на сайте оракл.

Содержимое очень хорошее, и судя по тому, что и моя консоль показывает то же самое, у вас всё отлично.
Хотя в последней строчке ;«E:\T
omCat\apache-tomcat-8.0.18»\bin\tomcat-juli.jar" нет первых и вторых кавычек в выделенном фрагменте.

Я бы переустановил JRE на новую- вы ничего не теряете.

Да, вторая консоль появляется, но не исчезает, пока сервер работает, если же он не запускается, то
она может и пропасть- это консольная джава-программа. собственно сервер как я понимаю.

То, что у вас нет папки логс-очень странно, так как она есть в скачанном архиве томката. Посмотрите, может вы не там смотрите?
Она должна быть здесь E:\TomCat\apache-tomcat-8.0.18\logs
timurnav
Уровень 21
12 февраля 2015, 00:23
java-course.ru/student/book1/servlet/
xpoint.ru/know-how/Articles/UstanavlivaemTomcatPodWindows?comments

я уже успел попробовать вот такими путями… что-то пока не то я делаю, видать)
timurnav
Уровень 21
12 февраля 2015, 00:34
а вот тут у меня резонный вопрос) у меня jre встало вместе с jdk) мне со старой jre что-нибудь делать?) разобрался
я так понял, нужно добавить просто кавычки в нужном месте? если да, то где? я вроде бы везде писал, как вы и указывали в статье.

содержимое папки томкат: bin, conf, java, modules, res, test, webapps и файлы, может я действительно не там смотрю? или скачал что-то не то. качал не то, что нужно, нигде блин нет уточнений что нужно качать из раздела core Your text to link... ну либо это я такой несообразительный)
Izhak
Уровень 22
12 февраля 2015, 00:56
Я беру 64 бит виндоус ссылку на зип архив apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-8/v8.0.18/bin/apache-tomcat-8.0.18-windows-x64.zip
timurnav
Уровень 21
12 февраля 2015, 01:00
Спасибо за Вашу помощь, проблема решена, не то что надо качал я, всё от невнимательности..

P.s. вечер убит, но есть большой плюс — я теперь точно запомню как настраивать TomCat))
Izhak
Уровень 22
12 февраля 2015, 01:04
бизрат ашем :)
я убил полторы недели.
timurnav
Уровень 21
12 февраля 2015, 01:07
зато способ с файлом setenv — самый действенный из всего, что я нашел — без него я бы долго втыкал в настройки переменных
Izhak
Уровень 22
12 февраля 2015, 01:12
так написано в каталина.бат
rem Do not set the variables in this script. Instead put them into a script
rem setenv.bat in CATALINA_BASE/bin to keep your customizations separate.
timurnav
Уровень 21
12 февраля 2015, 01:13
маг и волшебник вот кто ты)
Izhak
Уровень 22
12 февраля 2015, 01:36
не, мне нельзя :)
timurnav
Уровень 21
14 февраля 2015, 14:41
Izhak
Уровень 22
14 февраля 2015, 23:32
могу тоолько предложить писать в нетбинс- интеллиджи я особо не научился готовить, поэтому вот так info.javarush.ru/Izhak/2014/12/30/AJAX-и-другие-языки.html
по интеллиджи нашёл только такое info.javarush.ru/Izhak/2014/12/28/Поотлаживаемся-на-виртуальном-хосте.html но это не о сервлетах.
Diana
Уровень 41
16 января 2015, 00:18
утащила статью на 35 уровень :)
Izhak
Уровень 22
16 января 2015, 13:52
:^)
Gradus
Уровень 27
26 декабря 2014, 10:30
Спасибо за статью! Полезная инфа