У меня проблема с запуском Apache Tomcat 6 из Netbeans IDE 7.4 (в версии 7.3 у меня были такие же проблемы. Другие люди упоминали, что эта проблема существует и в других версиях, таких как 8.0 и т.д.).
Что я сделал:
Пользователь Tomcat: я позволил netbeans создать нового пользователя с именем Tomcat и паролем Tomcat. Когда я открываю файл {Tomcat}\conf\Tomcat-users.xml после добавления сервера, появляется информация о моем пользователе:
<user password = "Tomcat" role = "manager, admin" username = "Tomcat" />
Когда я теперь нажимаю «Пуск», я получаю « Не удалось запустить Tomcat ».
Мои подозрения:
Это влияет как минимум на версии NetBeans с 7.4 по 8.0.2. Впервые об этом сообщили в версии 8.0 и исправили в NetBeans 8.1. Это было бы проблемой для любой версии Tomcat (подтверждено для версий с 7.0.56 по 8.0.28).
Специфика описывается как ошибка Netbeans # 248182 .
Эта проблема также связана с публикациями, в которых упоминается следующая ошибка:
«127.0.0.1 *» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
Для Tomcat, установленного из Zip-файла, я исправил его, изменив файл catalina.bat
в каталоге Tomcat bin
.
Найдите приведенную ниже конфигурацию в файле catalina.bat
.
:noJuliConfig
set "Java_OPTS=%Java_OPTS% %LOGGING_CONFIG%"
:noJuliManager
set "Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%"
И измените его, как показано ниже, с помощью удаляя двойные кавычки:
:noJuliConfig
set Java_OPTS=%Java_OPTS% %LOGGING_CONFIG%
:noJuliManager
set Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%
Теперь сохраните изменения и запустите Tomcat из NetBeans.
Это влияет на:
Это потому, что Netbeans не «видит», что Tomcat запущен, хотя он запустился просто отлично.
Я подал Ошибка # 262749 с NetBeans .
В файле server.xml
в элементе Connector
для HTTP/1.1 добавьте следующий атрибут: server="Apache-Coyote/1.1"
.
Пример:
<Connector
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
server="Apache-Coyote/1.1"
/>
Причина этого заключается в том, что до 8.5.3 по умолчанию заголовок сервера устанавливался как Apache-Coyote/1.1
, а с 8.5.3 это значение по умолчанию теперь было изменено на пустое. Видимо Netbeans проверяет этот заголовок.
Возможно, в будущем мы можем ожидать исправления в NetBeans для решения этой проблемы.
Я смог проследить это до изменения в документации.
"Переопределяет заголовок сервера для ответа http. Если установлено, значение Для этого атрибута переопределяет любой заголовок сервера, установленный веб-приложением Если не установлено, используется любое значение, указанное приложением Если в приложении не указано значение, заголовок Server Не устанавливается. "
"Переопределяет заголовок сервера для ответа http. Если установлено, значение Для этого атрибута переопределяет значение по умолчанию Tomcat и любой заголовок сервера , Устанавливаемый веб-приложением. Если значение не установлено, любое значение, указанное в Приложение используется. Если приложение не указывает значение, тогда используется Apache-Coyote/1.1. Если вы не параноик, вам не понадобится эта функция. "
Это объясняет необходимость явного добавления атрибута сервера начиная с версии 8.5.3.
Кроме того, очень вероятно, что проблема с настройками прокси.
Любой, кто не преодолел Tomact, запускающий проблерем, - попробуйте в NetBeans выбрать Без прокси в Сервис -> Параметры -> вкладка Общие.
Это помогло мне.
Чтобы NetBeans мог взаимодействовать с Tomcat, ему необходимо, чтобы пользователь правильно настроил параметры NetBeans в файле Tomcat-users.xml
. NetBeans может сделать это автоматически.
То есть внутри Tomcat-users.xml
, который вы можете найти в ${CATALINA_HOME}/conf
или ${CATALINA_BASE}/conf
,
script-manager
Пример, изменить
<user password="Tomcat" roles="manager,admin" username="Tomcat"/>
К
<user password="Tomcat" roles="manager-script,manager,admin" username="Tomcat"/>
manager-script
Добавлять
<role rolename="manager-script"/>
На самом деле онлайн-справка NetBeans неверно утверждает:
Имя пользователя - указывает имя пользователя, которое IDE использует для входа в приложение менеджера сервера. Пользователь должен быть связан с ролью менеджера. При первом запуске IDE веб-сервера Tomcat, например, с помощью действия меню «Пуск/Стоп» или при выполнении веб-компонента из среды IDE, IDE добавляет пользователя-администратора со случайно сгенерированным паролем. в файл
Tomcat-base-path/conf/Tomcat-users.xml
. (Щелкните правой кнопкой мыши узел экземпляра веб-сервера Tomcat в окне «Службы» и выберите «Свойства». В диалоговом окне «Свойства» свойство «Базовый каталог» указывает на каталогbase-dir
.) Запись пользователя с правами администратора в файлеTomcat-users.xml
выглядит примерно так:<user username="idea" password="woiehh" roles="manager"/>
Роль должна быть manager-script
, а не manager
.
Для более полного файла Tomcat-users.xml
:
<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<user password="Tomcat" roles="manager-script" username="Tomcat"/>
<user password="pass" roles="manager-gui" username="me"/>
</Tomcat-users>
Есть еще одна хорошая публикация на почему я получаю ошибку развертывания?
У меня была та же проблема, но ни один из ответов выше не помог .. .. Для меня было решено восстановить веб-приложение Manager , которое входит в комплект Tomcat.