Несколько портов (8005, 8080, 8009), необходимых для сервера Tomcat на локальном хосте, уже используются - PullRequest
243 голосов
/ 21 февраля 2011

При попытке запустить простую программу JSP на Tomcat в Eclipse я получаю следующую ошибку.

Несколько портов (8005, 8080, 8009), необходимых для сервера Tomcat v6.0 на локальном хосте, уже используются. Возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. Чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номер (а) порта.

Как это вызвано и как я могу решить?

Ответы [ 32 ]

1 голос
/ 26 марта 2016

Проблема часто возникает, когда Apache Tomcat не удается правильно завершить работу, даже если была отправлена ​​инструкция по отключению. В моем случае, используя Tomcat 8, это происходит с раздражающей регулярностью. К счастью, вы можете использовать Windows PowerShell и команду netstat, чтобы создать простой сценарий для завершения процесса.

Следующий скрипт PowerShell проанализирует вывод из 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, отредактируйте регулярное выражение в четвертой строке скрипта соответствующим образом.

Наконец, я должен отметить, что в Linux ситуация лучше, потому что вы можете указать Tomcat сохранить его PID в файл во время запуска и использовать переключатель для принудительного завершения работы, позже - скрипт завершения работы для систем 'nix. уже имеется возможность убить процесс, и работа с секретом netstat не требуется.

0 голосов
/ 20 июня 2019

Самое простое решение

Однострочная команда для уничтожения нескольких портов:

kill $(lsof -t -i:8005,8080,8009) // 8005, 8080 and 8009 are the ports to be freed
0 голосов
/ 17 января 2019

В моем случае это выдает ошибку: Порт 8005, требуемый Tomcat v8.0. Сервер на локальном хосте уже используется

Я изменил порт 8005 в apache-tomcat-8.0.39 \ conf \ server.xml, но изменения не отражаются.Затем я сделал эти изменения из затмения.с помощью двойного щелчка по серверу и изменения порта с 8005 до 8006, и все работает.enter image description here

Перед установкой 8006 я проверил в оболочке Windows, доступен ли этот порт или нет.Выполнив следующую команду:

netstat -a -o -n | findstr 8006
0 голосов
/ 03 октября 2018

Не нужно закрывать IDE затмения. Возможно, ваш Tomcat уже запущен. Вот почему у вас есть ошибка.

открыть каталог tomcat >> bin >> из командного терминала (в моем случае это tomcat9)

Введите команду

. / Shutdown.sh

закроет ваш бегущий кот

enter image description here

0 голосов
/ 21 марта 2017

В ОС Windows щелкните правой кнопкой мыши на панели задач -> запустить диспетчер задач -> процесс, затем убедитесь, что java.exe или javaw запущен, если он запущен, затем щелкните по нему и завершите процессзатем перезапустите ваш сервер Tom Cat.

иногда скайп будет занимать порт 80, в этом случае измените настройки скайпа и установите значение 81 для скайпа или измените конфигурацию tomcat.
0 голосов
/ 05 февраля 2017

Ваш Tomcat, вероятно, уже запущен. Вот почему у вас есть ошибка. У меня была такая же проблема раньше. Я решил это очень просто:

  1. Перезагрузите компьютер
  2. Открытое затмение
  3. Запусти свой Tomcat

Вот и все.

0 голосов
/ 27 июня 2014

Это происходит, когда другие участники проекта также используют те же номера портов, что и вы!дважды щелкните сервер Tomcat, измените номера портов на 8585 или что-то еще.Теперь код начнет работать!

0 голосов
/ 29 ноября 2012

В Eclipse выполните непосредственное удаление папки конфигурации Tomcat в проекте «Серверы».Я пытался как последняя надежда, и это сработало.

0 голосов
/ 03 июня 2014

Несколько портов (8005, 8080, 8009), необходимых серверу Tomcat vX.X на локальном хосте, уже используются

Чтобы проверить, запущен ли другой экземпляр Tomcat или какой-либо другой процессиспользует порты, которые вы можете использовать:

netstat -b -a в командной строке для Windows.Это перечисляет используемые порты и дает вам исполняемый файл, который использует каждый из них.Для этого вам нужно быть в группе администраторов.

Вы можете получить что-то вроде этого:

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 и kill Tomcat7.exe илилюбой другой процесс, использующий эти порты.

0 голосов
/ 12 апреля 2016

Как убить службу Windows, используя PID -

  1. откройте командную строку и введите netstat -ano
  2. найти PID используемых портов, в этом случае это будет 8080, 8005,8009. Допустим, PID этих портов 5760.
  3. Теперь введите taskkill /f /pid 5760
  4. это закроет PID, и порты будут доступны для использования. Теперь вы можете запустить tomcat как обычно службами Windows или самим затмением.

Спасибо

убить службу Windows, которая зависла при остановке или запуске

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...