• ,

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

У меня возникло желание установить tomcat, и сделать несколько хостов для начала на локальном компьютере.
слон
Итак, сперва я с сайта установил сервис tomcat.
Он элементарно настраивается, но без подробного исследования неясно, каких пользователей и с какими паролями надо забивать в нетбинс, чтобы он скомпилировал и залил проект.

Поэтому я решил потратить время и воспользоваться теми описаниями, что легко найти в интернете по запросу «tomcat настройка», или на страничке tomcat.

Итак, если мы не идём простым путём (в дальнейшем выяснилось, что и путь, лежащий через установку инсталлятором тоже верен), то последовательность будет следующей.

1. С сайта tomcat.apache.org/index.html сохраняем zip-архив, и распаковываем его в папку с путём без пробелов и всяких сложных символов, например, «E:\tomcat\apache-tomcat-8.0.15».

2. Скачиваем последнюю версию JDK с сайта оракл www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html и ставим её тоже в папку с названием без пробелов (если так не сделать, и установить в папку 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.
Более подробно про работу с паролями здесь 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. Про то, как отлаживать работу приложений и т. д. wiki.apache.org/tomcat/HowTo#How_can_I_access_members_of_a_custom_Realm_or_Principal.3F
10. теперь при помощи скриптов shutdown.bat и startup.bat перезапускаем сервер, и можем войти в админку.
11. Создаём виртуальные хосты. Для этого посмотрим сюда wiki.apache.org/tomcat/TomcatDevelopmentVirtualHosts
12. можно ещё создать в админке ссылку на хост (Это то же самое, что мы сейчас сделали).
13. При создании новых записей в hosts для win8, сначала копируем файл в другую папку, там правим, и затем пишем обратно. После этого рестарт компьютера или сервера не нужен.

И в заключении в бесплатной версии IntelliJ Idea не поддерживает web, поэтому для начала можно попользоваться нетбинсом. netbeans.org/kb/trails/java-ee_ru.html
netbeans.org/kb/docs/web/ajax-quickstart_ru.html

25 комментариев

Gradus
Спасибо за статью! Полезная инфа
Diana
  • Diana
  • 0
  • Комментарий отредактирован 2015-01-16 00:18:35 пользователем Diana
утащила статью на 35 уровень :)
Izhak
:^)
timurnav
мой вопрос может показаться тупым, но почему у меня версия 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
Хорошо жить надо :)

по порядку
но почему у меня версия 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
  • timurnav
  • 0
  • Комментарий отредактирован 2015-02-12 00:34:26 пользователем timurnav
а вот тут у меня резонный вопрос) у меня jre встало вместе с jdk) мне со старой jre что-нибудь делать?) разобрался
я так понял, нужно добавить просто кавычки в нужном месте? если да, то где? я вроде бы везде писал, как вы и указывали в статье.

содержимое папки томкат: bin, conf, java, modules, res, test, webapps и файлы, может я действительно не там смотрю? или скачал что-то не то. качал не то, что нужно, нигде блин нет уточнений что нужно качать из раздела core Your text to link... ну либо это я такой несообразительный)
timurnav
java-course.ru/student/book1/servlet/
xpoint.ru/know-how/Articles/UstanavlivaemTomcatPodWindows?comments

я уже успел попробовать вот такими путями… что-то пока не то я делаю, видать)
Izhak
Я беру 64 бит виндоус ссылку на зип архив apache-mirror.rbc.ru/pub/apache/tomcat/tomcat-8/v8.0.18/bin/apache-tomcat-8.0.18-windows-x64.zip
timurnav
Спасибо за Вашу помощь, проблема решена, не то что надо качал я, всё от невнимательности..

P.s. вечер убит, но есть большой плюс — я теперь точно запомню как настраивать TomCat))
Izhak
бизрат ашем :)
я убил полторы недели.
timurnav
зато способ с файлом setenv — самый действенный из всего, что я нашел — без него я бы долго втыкал в настройки переменных
Izhak
так написано в каталина.бат
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
маг и волшебник вот кто ты)
Izhak
не, мне нельзя :)
timurnav
Izhak
  • Izhak
  • +1
  • Комментарий отредактирован 2015-02-14 23:32:05 пользователем Izhak
могу тоолько предложить писать в нетбинс- интеллиджи я особо не научился готовить, поэтому вот так info.javarush.ru/Izhak/2014/12/30/AJAX-и-другие-языки.html
по интеллиджи нашёл только такое info.javarush.ru/Izhak/2014/12/28/Поотлаживаемся-на-виртуальном-хосте.html но это не о сервлетах.
timurnav
как же всё-таки важно изучать скачанные директории на предмет наличия файлов *.txt очень много интересного можно найти
cerebellum
Кстати, на днях ковырял TomCat.
Обновил JRE и пошло поехало. Запускаться напрочь отказывается. Но вопрос не в этом.
Ввиду скитаний по каталогам JDK, JRE, Tomcat назрел вопрос:«Почему при установке JDK (которрый в свою очередь предлагает установить JRE), независимо от того установил JRE или нет, в папке jdk появляется каталог jre. Зачем он нужен? Если это среда исполнения, то к чему предлагать/устанавливать её отдельно?»

Есть просвещёные?
nicolas
JRE которая устанавливается внутри JDK используется исключительно для запуска java файлов, которые пишутся в IDE с использованием этого JDK. При попытке сделать этот JRE программой по умолчанию для открытия java файлов — оно ругается, говорит нельзя. Поэтому ставят еще отдельно JRE для запуска jar, java из системы, как приложение по-умолчанию.
AlexandrRS
  • AlexandrRS
  • 0
  • Комментарий отредактирован 2015-08-05 11:27:23 пользователем AlexandrRS
Не могу настроить 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
Если не можете найти инфу в инете думаю не стоит самому собирать проект. Maven archetype в помощь.
Томкат
или
немного устаревший
AlexandrRS
Возможно Вы правы, но я другого мнения. Я увидел maven (как и tomcat, hibernate, spring, mysql, junit) 5 дней назад и мне стало утомительно руками копировать war в папку webapp. Я уверен, что требуется больше 5 дней на охват этих технологий и, возможно, я где-то что-то упускаю…
Спасибо за поддержку!
Izhak
  • Izhak
  • 0
  • Комментарий отредактирован 2015-08-05 17:01:52 пользователем Izhak
а зачем war копировать в папку webapp? например, я пока пользуюсь нетбинсом- он сам разворачивает, а если надо на сайт- так здесь вобщем-то тоже нетбинсом можно. Хотя я руками копирую.
AlexandrRS
Я привык к idea, не хочу пока прыгать по другим IDE, но netbeans стоит. Все равно хотелось деплоить мавеном, чтобы уж наверняка. Хотя, судя по тому, что я выяснил, через deploy закидывать war в томкэт — это по воробьям…
blacky
Деплоем в мавене пользуются, когда нужно залить на удаленный сервер. А тут copy-paste war'ка, либо maven:install.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.