User Izhak
Izhak
22 уровень
Москва

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

Статья из группы Архив info.javarush.ru
У меня возникло желание установить 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
Не могу настроить 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>
cerebellum Уровень 7
20 апреля 2015
Кстати, на днях ковырял TomCat.
Обновил JRE и пошло поехало. Запускаться напрочь отказывается. Но вопрос не в этом.
Ввиду скитаний по каталогам JDK, JRE, Tomcat назрел вопрос:«Почему при установке JDK (которрый в свою очередь предлагает установить JRE), независимо от того установил JRE или нет, в папке jdk появляется каталог jre. Зачем он нужен? Если это среда исполнения, то к чему предлагать/устанавливать её отдельно?»

Есть просвещёные?
timurnav Уровень 21
15 февраля 2015
как же всё-таки важно изучать скачанные директории на предмет наличия файлов *.txt очень много интересного можно найти
timurnav Уровень 21
11 февраля 2015
мой вопрос может показаться тупым, но почему у меня версия 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 отсутствует…

как с этим жить-то теперь?
Diana Уровень 41, Украина
16 января 2015
утащила статью на 35 уровень :)
Gradus Уровень 27, Санкт-Петербург, Польша
26 декабря 2014
Спасибо за статью! Полезная инфа