Я получаю следующую ошибку, когда пытаюсь запустить простую JSP-программу на Tomcat в Eclipse.
Несколько портов (8005, 8080, 8009), требуемых сервером Tomcat v6.0 на локальном хосте, уже используются. Возможно, сервер работает в другом процессе, или системный процесс может использовать порт. Чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номера портов.
Как это вызвано и как я могу его решить?
У вас уже есть другой экземпляр Tomcat. Вы можете подтвердить это, перейдя в http://localhost:8080
в своем веб-браузере и убедитесь, что вы получаете домашнюю страницу Tomcat по умолчанию или страницу ошибки 404, специфичную для Tomcat. Оба являются одинаково достоверными доказательствами, что Tomcat работает нормально; если это не так, тогда вы получили сообщение об ошибке таймаута HTTP-соединения, специфичное для браузера.
Вам нужно закрыть его. Перейдите в подпапку /bin
папки установки Tomcat и выполните shutdown.bat
(Windows) или shutdown.sh
(Unix) script. Если тщетно, закройте Eclipse, а затем откройте диспетчер задач и убейте все процессы java
и/или javaw
.
Или, если вы по какой-либо причине фактически установили его как службу Windows (это специально предназначено для производства и бесполезно, когда вы только начинаете), откройте диспетчер служб (Start > Run > services.msc) и остановите Служба Tomcat. При необходимости удалите всю службу Windows. Для разработки достаточно всего файла ZIP.
Или, если ваше намерение состоит в одновременном запуске двух экземпляров Tomcat, вам необходимо настроить второй экземпляр для прослушивания на разных портах. Подробнее см. В документации Tomcat.
sh shutdown.sh
в терминале в каталоге / bin.
shutdown.bat
. Tomcat был установлен как сервис, а не как почтовый индекс. Остановка службы tomcat в сервисах устранила проблему. Благодарю. Chenqui.
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
Если вы работаете в Windows, попробуйте это в командной строке:
netstat -ano
Это покажет все используемые порты и идентификатор процесса ID PID процесса, который использует этот порт. Затем Ctrl + Alt + Del и откройте диспетчер задач, чтобы узнать, какой процесс это.
Затем вы можете выбрать либо закрыть или остановить его, либо настроить сервер для использования другого порта. Чтобы проверить, доступен ли новый выбранный порт (допустим, 8010), выполните следующие действия:
netstat -ano | grep 8010
Если он не возвращает никаких строк, тогда вы в порядке.
Чтобы изменить порт, перейдите к представлению "Сервер", откройте server.xml и измените его. У меня есть эта запись:
Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
findstr
для тех, у кого нет grep.
Если вы находитесь в среде Mac, здесь - это то, что я сделал.
Найдите идентификатор процесса, запущенный на этом порту с терминала, например, 8080:
lsof -i :8080
и убейте его:
kill -9 <PID>
Шаги к свободному порту, который уже используется для запуска сервера tomcat в Eclipse
Например, предположим, что используется порт 8080, нам нужно сделать бесплатный 8080 для запуска tomcat
Шаг 1:
C:\Users\имя пользователя > netstat -o -n -a | findstr 0.0: 8080
TCP 0.0.0.0:3000 0.0.0.0:01 LISTENING 3116
Теперь мы видим, что порт LISTENING равен 3116 для 8080,
Нам нужно убить 3116 сейчас
Шаг 2: -
C:\Users\имя_пользователя > taskkill/F/PID 3116
Шаг 3: Перейдите в Eclipse и запустите сервер, он запустит
Если вы используете Eclipse, дважды щелкните по серверам и дважды щелкните на сервере tomcat, затем откроется один файл. В этом файле измените HTTP-порт на другой номер порта и сохраните (Ctrl + S), затем снова запустите сервер.
Если Eclipse говорит
Несколько портов (8005, 8080, 8009), требуемых сервером Tomcat v6.0 на локальном хосте, уже используются
Эта ошибка возникает из-за того, что tomcat может работать в фоновом режиме, поэтому сначала остановите этот сервер. Следуйте приведенным ниже деталям.
Решение:
Спасибо!
У меня нет другого экземпляра Tomcat, работающего без другого процесса, использующего "порт Tomcat" (в моем случае, порт 8088). Eclipse отправляет то же сообщение при запуске Tomcat:
.... Возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. Чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номера портов.
Я решаю проблему следующим образом:
Шаг 1: netstat -a -o -n, и он вызовет список сетей, выполнит поиск локального адреса, например 127.0.0.1:8080, и запомнит PID (например, 3624)
C:\>netstat -a -o -n
Шаг 2: Taskkill/F/PID 3624. Запустите эту команду, чтобы убить этот процесс.
C:\>taskkill /F /PID 3624
ссылка на пост
Что я сделал после прочтения всего предложенного ответа, и, как я знаю, мой порт уже используется. Я дважды нажал на Tomcat на вкладке "Серверы" в eclipse и открыл обзорную информацию, а затем нашел информацию о порте. Просто изменился конфликтный порт, так как у меня был порт 8009 (ошибка упоминалась при запуске сервера). Я изменил его на 8008, и он отлично работает. Попробуйте, если изменившийся порт не будет использоваться, сервер начнет работу.
В Windows используйте команду для остановки уже запущенного экземпляра tomcat и попробуйте запустить его снова в eclipse, это может сработать.
net stop tomcat7
Или вы можете изменить порт в XML файле сервера, если вы просто хотите использовать другие порты.
Простой способ решить вашу проблему:
Возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. Чтобы убить этот порт, выполните следующие действия:
1) Загрузите TCPView (только 285kb) из следующей ссылки.
http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx
2) Извлеките папку и запустите приложение TCPView.
3) Щелкните правой кнопкой мыши на java.exe (потому что 8009 8005 портов обычно используются java-процессом) и выберите Завершить процесс.
это легко остановит другой процесс.
ПРИМЕЧАНИЕ. Запуск TOMCATPATH /bin/shutdown.bat может не отключать Tomcat, когда он содержит какой-то демон или неуправляемый потоки. В таких случаях TCPView отлично работает без каких-либо проблем.
Для пользователей Windows:
Перейдите в диспетчер задач непосредственно с комбинацией клавиш CTRL + SHIFT + ESC.
Убейте процессы "java.exe", щелкнув правой кнопкой мыши и выбрав "Завершить задачу".
Вот еще один вариант попробовать, если ни одна из вышеперечисленных усилий не помогла. Возможно, вы используете Eclipse с общего диска (например, H:). Если это так, переместите/скопируйте весь каталог Eclipse в C: и повторите попытку.
My Eclipse не смог открыть порты для сервера Tomcat (с вышеуказанной ошибкой) и даже не подключиться к Интернету. Я также попробовал еще один плагин Tomcat (Sysdeo), который также не смог открыть порты.
Это параметры, которые я пробовал:
Проверить и убить другие экземпляры Tomcat
netstat -ano
и проверьте, используют ли какие-либо другие процессы конфликтующие порты.Изменить порты Tomcat в Eclipse
Убить java.exe и javaw
См. мой другой ответ для Eclipse, не подключающегося к Интернету (https://stackoverflow.com/questions/7778484/eclipse-can-not-connect-to-internet).
Иногда, если порты не освобождаются даже после попытки shutdown.bat, что предложил @BalusC, вы можете убить процесс javaw. Выполните следующие действия:
Введите команду ps. Вы можете увидеть изображение следующим образом:
См. номер процесса процесса "javaw". Номер процесса - это самое правое число в столбцах, я выделил, например, номер процесса изображения javaw.
Введите команду kill. javaw убит, и теперь вы должны иметь возможность запускать программу.
Если вы используете Java EE в Eclipse и пытаетесь запустить Tomcat Server в Eclipse в режиме отладки, тогда вы получите такие ошибки. Вы должны переключиться на отладку проспективных в Eclipse. Я решил эту проблему так.
Я проверил все ответы, но informing only to kill PID
.
В случае, если у вас есть общий доступ к терминалу, это не поможет или, возможно, у вас нет разрешения убивать PID.
В этом случае вы можете сделать следующее:
Double click on server
Go to Overview and change ports in Ports
как это:
Проблема часто возникает, когда Apache Tomcat не удается завершить, правильно, даже несмотря на то, что команда отключения была отправлена. В моем случае, используя Tomcat 8, это происходит с раздражающей регулярностью. К счастью, вы можете использовать Windows PowerShell и команду netstat
для создания простого script, чтобы убить процесс.
Следующий PowerShell script будет анализировать вывод из netstat
, чтобы найти любой процесс, который прослушивает 127.0.0.1:8005
, извлечь его PID и затем убить этот процесс:
netstat -a -o -n `
| select -skip 4 `
| % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
| ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
| % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }
Если ваш server.xml
настраивает Tomcat для использования другого порта или IP, отредактируйте регулярное выражение на четвертой строке script соответственно.
Наконец, я должен отметить, что ситуация лучше в Linux, потому что вы можете поручить Tomcat сохранить его PID в файл во время запуска и использовать переключатель, чтобы принудительно завершить работу, позже - выключение script для ' В системах nix уже есть возможность убить процесс, а работа с ошибкой с netstat
не требуется.
Более простое исправление, которое работает для меня, - удаление моих текущих развернутых webapps из tomcat через вкладку "Сервер". Как только я удалю их, проблема исчезнет. Просто повторно разверните проект, выполнив команду "Выполнить как > выполнить на сервере".
В моем случае он выдавал ошибку: порт 8005, требуемый сервером Tomcat v8.0 на локальном хосте, уже используется
Я изменил порт 8005 в apache-tomcat-8.0.39\conf\server.xml, но изменения не отражались. Затем я сделал эти изменения из затмения. дважды щелкнув сервер и изменив порт с 8005 до 8006, и это работает.
Перед тем как поставить 8006 я проверил в оболочке windows, доступен этот порт или нет. Выполнив следующую команду:
netstat -a -o -n | findstr 8006
Не нужно закрывать IDE затмения. Возможно, ваш Tomcat уже запущен. Вот почему у вас есть ошибка.
откройте каталог tomcat >> bin >> из командного терминала (в моем случае это tomcat9)
Введите команду
./shutdown.sh
это закроет ваш бегущий кот
Это может быть из-за того, что вы неправильно останавливаете службу tomcat. Для этого откройте диспетчер задач, там вы можете увидеть сервис javaw.exe
. Сначала остановите эту услугу. Теперь перезагрузите ваш кот, он работает нормально.
Если вышеуказанная проблема возникает в ОС Windows 7 или 10, проблема возникает из-за того, что Tomcat работает как служба Windows. Чтобы остановить запуск Tomcat в качестве служб Windows, откройте панель управления Windows. Найдите сервис "Apache Tomcat" и остановите его. Другой способ - завершить процесс, запущенный на порте 8080, с помощью cmd.
Откройте cmd, запустив его от имени администратора.
В ОС Windows щелкните правой кнопкой мыши на панели задач → запустить диспетчер задач → затем проверьте java.exe или javaw, если он запущен, затем нажмите на него и завершите затем перезагрузите сервер tom cat.
Ваш Tomcat, вероятно, уже запущен. Вот почему у вас есть ошибка. Раньше у меня была такая же проблема. Я решил это очень просто:
Что все.
Как убить службу Windows с помощью PID -
netstat -ano
taskkill /f /pid 5760
Спасибо
убить службу Windows, которая застряла при остановке или запуске
Это происходит, когда другие в проекте также используют те же номера портов, что и вы! дважды щелкните tomcat-сервер, измените номера портов на все 8585 или что-то еще. Теперь код начнет работать!
Несколько портов (8005, 8080, 8009), требуемых сервером Tomcat vX.X на localhost, уже используются
Чтобы проверить, работает ли еще один экземпляр Tomcat или какой-либо другой процесс, используйте порты, которые вы можете использовать:
netstat -b -a
в командной строке для окон. В этом списке указаны используемые порты и выдается исполняемый файл, который использует каждый из них. Вы должны быть в группе администратора, чтобы сделать это.
Вы можете получить что-то вроде этого:
TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
Откройте диспетчер задач Ctrl + Shift + Esc и убейте Tomcat7.exe
или любой другой процесс, используя эти порты.
В случае окон я испытал новый материал... остановка tomcat из папки /bin немедленно не освободит порт 8080. Для освобождения порта требуется около 5-10 минут. Через 10 минут снова, если я попытаюсь запустить свой проект Run- > Run на сервере.. он позволяет запускать.
Я не уверен, правильно ли я понял!
В Eclipse сделайте необработанное удаление папки конфигурации Tomcat в проекте "Серверы". Я попробовал это как последнюю надежду, и это сработало.
Обратитесь к следующему блогу "Как убить tomcat без перезагрузки компьютера"
http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html
Надеюсь, это поможет кому-то в будущем.