У меня возникло желание установить 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