запуск tomcat не удалось из netbeans

<p>у меня проблема с запуском apache tomcat 6 из netbeans ide 7.4 (в версии 7.3 у меня были такие же проблемы. другие люди упоминали, что эта проблема существует и в других версиях, таких как 8.0 и т.д.). </p><p>что я сделал: </p><ul> <li>удалить установленный tomcat 7 (не удаляя его, у меня были такие же трудности) </li> <li>добавить новый сервер, скачанный с сайта apache tomcat (версия apache-tomcat-6.0.39, с другой версией у меня были такие же проблемы) </li> <li>расположение моего сервера: d:\apache-tomcat-netbeans </li> <li>системная переменная catalina\_home: d:\apache-tomcat-netbeans </li> <li>системная переменная java home: c:\program files\java\jdk1.7.0\_51 \ </li> <li><p>пользователь tomcat: я позволил netbeans создать нового пользователя с именем tomcat и паролем tomcat. когда я открываю файл {tomcat}\conf\tomcat-users.xml после добавления сервера, появляется информация о моем пользователе: </p> <p><user password = "tomcat" role = "manager, admin" username = "tomcat" /></p></li> </ul><p>когда я теперь нажимаю «пуск», я получаю «<strong> не удалось запустить tomcat </strong>». </p><p>мои подозрения: </p><ul> <li>я работаю на windows 7 в качестве администратора, поэтому я думаю, что это не проблема с правами доступа к файлам. </li> <li>отключение прокси не помогло. </li> <li>журналы: создан только один файл журнала: localhost.2014-03-06.log, и он полностью пуст. </li> <li>запуск netbeans "как администратор" не помог.</li> <li>из командной строки все в порядке, у меня нет проблем с запуском в нормальном или отладочном режиме (<em>catalina.bat jpda start</em> или <em>startup.bat</em>)</li> </ul>

<p>это влияет как минимум на версии netbeans с 7.4 по 8.0.2. впервые об этом сообщили в версии 8.0 и исправили в netbeans 8.1. это было бы проблемой для любой версии tomcat (подтверждено для версий с 7.0.56 по 8.0.28).</p><p>специфика описывается как <a href="https://netbeans.org/bugzilla/show\_bug.cgi?id=248182">ошибка netbeans # 248182</a> . </p><p>эта проблема также связана с публикациями, в которых упоминается следующая ошибка:</p><blockquote> <p>«127.0.0.1 *» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.</p> </blockquote><p>для tomcat, установленного из zip-файла, я исправил его, изменив файл <code>catalina.bat</code> в каталоге tomcat <code>bin</code>.</p><p>найдите приведенную ниже конфигурацию в файле <strong><code>catalina.bat</code></strong>.</p><pre><code>:nojuliconfig set "java\_opts=%java\_opts% %logging\_config%" :nojulimanager set "java\_opts=%java\_opts% %logging\_manager%" </code></pre><p>и измените его, как показано ниже, с помощью <em>удаляя двойные кавычки</em>:</p><pre><code>:nojuliconfig set java\_opts=%java\_opts% %logging\_config% :nojulimanager set java\_opts=%java\_opts% %logging\_manager% </code></pre><p>теперь сохраните изменения и запустите tomcat из netbeans.</p>

<p>это влияет на:</p><ul> <li>все версии tomcat, начиная с 8.5.3.</li> <li>все версии netbeans до 8.1 (это исправлено в netbeans 8.2).</li> </ul><p>это потому, что netbeans не «видит», что tomcat запущен, хотя он запустился просто отлично.</p><p>я подал <a href="https://netbeans.org/bugzilla/show\_bug.cgi?id=262749">ошибка # 262749 с netbeans</a> .</p><h2>workaround</h2><p>в файле <code>server.xml</code> в элементе <code>connector</code> для http/1.1 добавьте следующий атрибут: <code>server="apache-coyote/1.1"</code>. </p><p>пример:</p><pre class="lang-xml prettyprint-override"><code><connector connectiontimeout="20000" port="8080" protocol="http/1.1" redirectport="8443" server="apache-coyote/1.1" /> </code></pre><h2>причина</h2><p>причина этого заключается в том, что до 8.5.3 по умолчанию заголовок сервера устанавливался как <code>apache-coyote/1.1</code>, а с 8.5.3 это значение по умолчанию теперь было изменено на пустое. видимо netbeans проверяет этот заголовок.</p><p>возможно, в будущем мы можем ожидать исправления в netbeans для решения этой проблемы.</p><p>я смог проследить это до изменения в документации.</p><p> <a href="https://tomcat.apache.org/tomcat-8.5-doc/config/http.html">tomcat 8.5</a> :</p><blockquote> <p>"переопределяет заголовок сервера для ответа http. если установлено, значение для этого атрибута переопределяет любой заголовок сервера, установленный веб-приложением если не установлено, используется любое значение, указанное приложением если в приложении не указано значение, заголовок server не устанавливается. "</p> </blockquote><p> <a href="https://tomcat.apache.org/tomcat-8.0-doc/config/http.html">tomcat 8.0</a> :</p><blockquote> <p>"переопределяет заголовок сервера для ответа http. если установлено, значение для этого атрибута переопределяет значение по умолчанию tomcat и любой заголовок сервера , устанавливаемый веб-приложением. если значение не установлено, любое значение, указанное в приложение используется. если приложение не указывает значение, тогда используется apache-coyote/1.1. если вы не параноик, вам не понадобится эта функция. "</p> </blockquote><p>это объясняет необходимость явного добавления атрибута сервера начиная с версии 8.5.3.</p>

<p>кроме того, очень вероятно, что проблема с настройками прокси.</p><p>любой, кто не преодолел tomact, запускающий проблерем, - попробуйте в netbeans выбрать<strong> без прокси </strong>в сервис -> параметры -> вкладка общие.</p><p>это помогло мне.</p>

<p>чтобы netbeans мог взаимодействовать с tomcat, ему необходимо, чтобы пользователь правильно настроил параметры netbeans в файле <code>tomcat-users.xml</code>. netbeans может сделать это автоматически.</p><p>то есть внутри <code>tomcat-users.xml</code>, который вы можете найти в <code>${catalina_home}/conf или ${catalina\_base}/conf</code>,</p><ol> <li>убедитесь, что пользователю (как выбрано в netbeans) добавлена роль <code>script-manager</code></li> </ol><p>пример, изменить</p><pre><code><user password="tomcat" roles="manager,admin" username="tomcat"/> </code></pre><p>к</p><pre><code><user password="tomcat" roles="manager-script,manager,admin" username="tomcat"/> </code></pre><ol start="2"> <li>убедитесь, что объявлена роль <code>manager-script</code></li> </ol><p>добавлять</p><pre><code><role rolename="manager-script"/> </code></pre><p>на самом деле онлайн-справка netbeans неверно утверждает:</p><blockquote> <p>имя пользователя - указывает имя пользователя, которое ide использует для входа в приложение менеджера сервера. <strong>пользователь должен быть связан с ролью менеджера</strong>. при первом запуске ide веб-сервера tomcat, например, с помощью действия меню «пуск/стоп» или при выполнении веб-компонента из среды ide, ide добавляет пользователя-администратора со случайно сгенерированным паролем. в файл <code>tomcat-base-path/conf/tomcat-users.xml</code>. (щелкните правой кнопкой мыши узел экземпляра веб-сервера tomcat в окне «службы» и выберите «свойства». в диалоговом окне «свойства» свойство «базовый каталог» указывает на каталог <code>base-dir</code>.) запись пользователя с правами администратора в файле <code>tomcat-users.xml</code> выглядит примерно так: <code><user username="idea" password="woiehh" roles="manager"/></code></p> </blockquote><p>роль должна быть <code>manager-script</code>, а не <code>manager</code>.</p><p>для более полного файла <code>tomcat-users.xml</code>:</p><pre><code><?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> </code></pre><p>есть еще одна хорошая публикация на <a href="https://stackoverflow.com/questions/16712744/why-am-i-getting-the-deployment-error">почему я получаю ошибку развертывания?</a> </p>

<p>у меня была та же проблема, но ни один из ответов выше не помог .. .. для меня было решено восстановить <a href="https://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html">веб-приложение manager</a> , которое входит в комплект tomcat.</p>