Tomcat в Eclipse: он запускается, но время ожидания во время запуска все равно истекает

Я запускаю веб-приложение Java в Eclipse (Helios) с использованием Tomcat 7. Сервер успешно запускается (указана продолжительность), однако индикатор выполнения Eclipse все еще вращается, говоря, что Tomcat запускается. В конце концов истекает время ожидания и выдается ошибка.

Я считаю, что с Tomcat все в порядке, поскольку я взял команду, которую он использует, и запустил ее вручную в оболочке. Tomcat работает нормально, и я могу открыть веб-приложение по ожидаемому URL-адресу. Я также могу ударить по нему после его запуска и до истечения времени ожидания.

Я переустановил Eclipse, запустил его с чистым, удалил/создал заново сервер. Ничего не сработало. У кого-нибудь есть подсказки?


person pschang    schedule 05.02.2011    source источник


Ответы (7)


У меня была эта проблема, кажется, что Eclipse вызывает URL-адрес приложения после запуска, чтобы убедиться, что оно работает.

Прокси-клиент (pshione) изменил системный прокси-сервер, поэтому eclipse не может вызвать стартовую страницу и считает, что приложение еще не запускается!

Я удалил прокси, и теперь он работает нормально!

Отредактировано:

Это также может произойти, когда вы запускаете свой кот с SSL, но сертификация ssl недействительна. Когда вы звоните на недействительный сайт сертификации SSL, некоторые браузеры подтверждают, хотите ли вы перейти на один из них или нет, но eclipse не может подключиться к вашему недействительному сайту SSL! Я предлагаю протестировать ваш сайт с обычным http вместо https.

person Alireza Fattahi    schedule 23.10.2013
comment
+1 за заметку о сертификате SSL. Мое исправление заключалось в повторном добавлении соединителя 8080 (но при этом сохранялся мой самозаверяющий сертификат 8443 Connector). - person csd; 07.02.2014

Некоторые обновления Java вызывают проблемы с сетевой работой Eclipse. В частности, Eclipse пытается использовать IPv6 вместо IPv4 и иногда терпит неудачу. Когда Eclipse запускает Tomcat, одним из последних шагов является проверка отладочного вызова Tomcat. Скорее всего, это та часть, которая висит. К счастью, исправить это очень просто. Мы просто указываем Eclipse использовать вместо этого IPv4.

Для этого отредактируйте файл eclipse.ini (находящийся в каталоге Eclipse) и добавьте в конец файла в отдельной строке следующее:

-Djava.net.preferIPv4Stack=true

Перезапустите Eclipse, и все будет хорошо.

person PeterToTheThird    schedule 28.10.2013

У меня была такая же проблема, это было связано с определенными мной разъемами (у меня был только разъем AJP).

Добавление HTTP-коннектора в файл server.xml Tomcat решило проблему.

person Paul Podgorsek    schedule 02.07.2016

Эта проблема связана с котом, настроенным с HTTPS без соединителя HTTP.

У меня был этот коннектор SSL в server.xml, и мой кот в Eclipse всегда показывает Starting:

<Connector SSLEnabled="true" asyncTimeout="10000000" clientAuth="false" 
    connectionTimeout="10000000" keepAliveTimeout="10000000" 
    keystoreFile="/opt/config/selfsigned.p12" keystorePass="changeit" 
    keystoreType="PKCS12" maxThreads="200" port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS"/>

Я предполагаю, что Eclipse использует HTTP-соединение с сервером, чтобы убедиться, что экземпляр Tomcat доступен.

Я решил эту проблему, включив дополнительный HTTP-коннектор, перенаправляющий на HTTPS в server.xml.

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
    redirectPort="443"/>

<Connector SSLEnabled="true" asyncTimeout="10000000" clientAuth="false" 
    connectionTimeout="10000000" keepAliveTimeout="10000000" 
    keystoreFile="/opt/config/selfsigned.p12" keystorePass="changeit" 
    keystoreType="PKCS12" maxThreads="200" port="443"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS"/>

С этим изменением мой кот в Eclipse начинает правильно отображать состояние Debugging.

person carlosyague    schedule 17.10.2018

Я нашел ответ (сразу после публикации здесь, который, по иронии судьбы, кажется, как найти ответ на свой вопрос.)

Ответ заключался в том, что порт используется другим процессом. Я должен был знать, но обновил несколько разных пакетов. Но по симптомам:

  • Tomcat запускается успешно. Возможность поразить приложение до тайм-аута.
  • Похоже, что Eclipse не может определить, запущен сервер или остановлен.

HTTP в настоящее время работает по умолчанию 8080. К сожалению, мое хранилище данных прослушивалось на 8080 (мое предположение, поскольку я не совсем уверен, что он делает с портом, за исключением того, что он выделен для jmx). Я предполагаю, что Eclipse не может обнаружить Tomcat на 8080.

person pschang    schedule 05.02.2011
comment
вопрос в вас, и ответ тоже в вас. ;) - person R K; 05.02.2011
comment
Точно моя проблема тоже ... спасибо за ответ! У меня был работающий экземпляр Vagrant, привязанный к 8080, но, к сожалению, Eclipse не показывает проблему во время запуска, и вместо этого с радостью сообщает о запуске сервера в xxxxx мс. - person uncrase; 04.09.2015

У меня возникла эта проблема, кажется, что моя версия tomcat была ошибочной (tomcat 7.0.23), переключите свою версию tomcat на другую (например, tomcat 7.0.14), у меня это работает.

удачи

person eXiaMike    schedule 11.01.2012

Это может произойти, если два сервлета сопоставлены с одним и тем же URL-адресом запроса, Tomcat запустится нормально, но eclipse не сможет сгенерировать правильный файл web.xml и, следовательно, не сможет опубликовать веб-приложение. Проверьте сопоставление вашего сервлета @WebServlet("\TheURLThatShouldInvokeThisServlet") и убедитесь, что два сервлета не имеют одинаковый "URLThatShouldInvokeThisServlet".

(ставлю для протокола!)

person Shasak    schedule 25.04.2013