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

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

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

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

37 ответов

Решение

У вас уже есть другой экземпляр Tomcat. Вы можете подтвердить это, перейдя в http://localhost:8080 в веб-браузере и убедитесь, что вы получаете домашнюю страницу Tomcat по умолчанию или страницу ошибки 404, характерную для Tomcat. Оба являются одинаково вескими доказательствами того, что Tomcat работает нормально; в противном случае вы получили бы сообщение об ошибке тайм-аута HTTP-соединения, специфичного для браузера.

Вы должны закрыть его. Идти к /bin вложенной папки установочной папки Tomcat и выполните shutdown.bat (Windows) или shutdown.sh (Unix) скрипт. Если напрасно, закройте Eclipse, а затем откройте диспетчер задач и убейте все java и / или javaw процессы.

Или, если вы по какой-то причине фактически установили его в качестве службы Windows (это специально предназначено для работы и бесполезно, когда вы только разрабатываете), откройте диспетчер служб (Пуск> Выполнить> services.msc) и остановите службу Tomcat. При необходимости полностью удалите службу Windows. Для разработки достаточно ZIP-файла.

Или, если вы хотите одновременно запустить два экземпляра Tomcat, вам нужно настроить второй экземпляр для прослушивания разных портов. Обратитесь к документации Tomcat для более подробной информации.

kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • нет необходимости перезапускать Eclipse
  • если вы получили ошибку выше, просто введите эту строку в терминале
  • снова запустите кота в Eclipse.
  • работает только в системе на основе Linux ( Ubuntu ..etc)

Если вы работаете в Windows, попробуйте это в командной строке:

netstat -ano

Это покажет все используемые порты и идентификатор процесса PID # процесса, который использует этот порт. Затем нажмите Ctrl+Alt+Del и откройте диспетчер задач, чтобы увидеть, что это за процесс.

Затем вы можете либо закрыть / остановить его, либо настроить свой сервер на использование другого порта. Чтобы проверить, доступен ли новый выбранный порт (скажем, 8010):

netstat -ano | grep 8010

Если он не возвращает никаких строк, то все в порядке.

Чтобы изменить порт, перейдите в представление Server, откройте server.xml и измените порт там. У меня есть эта запись:

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"

Шаги для освобождения порта, который уже используется для запуска сервера 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:0 СЛУШАТЬ 3116

Теперь мы можем видеть, что LISTENING порт 3116 для 8080,

Нам нужно убить 3116 сейчас

Шаг 2:-

C: \ Users \ имя пользователя>taskkill /F /PID 3116

Шаг 3: Зайдите в Eclipse и запустите Сервер, он запустится

Если вы находитесь в среде Mac, вот что я сделал.

Найдите идентификатор процесса, запущенный на этом порту из терминала, например, 8080:

lsof -i :8080

и убить его

kill -9 <PID>

Если вы используете Eclipse, дважды щелкните по серверам и дважды щелкните по серверу tomcat, и откроется один файл. В этом файле измените HTTP-порт на другой номер порта и сохраните (Ctrl+S), затем снова запустите сервер.

Если Затмение говорит

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

Эта ошибка возникает из-за того, что tomcat может работать в фоновом режиме, поэтому сначала остановите этот сервер. Следуйте приведенным ниже сведениям.

Решение:

  1. Откройте представление "Консоль" (окно-> Показать представление-> Консоль)
  2. Затем остановите сервер Tomcat.
  3. Затем откройте представление "сервер" и запустите сервер, он будет работать.

Спасибо!

У меня нет другого экземпляра Tomcat, запущенного без какого-либо другого процесса, использующего "порт Tomcat" (в моем случае, порт 8088). Eclipse отправляет то же сообщение при запуске Tomcat:

.... Возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. Чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номер (а) порта.

Я решаю проблему следующим образом:

  • зайдите в мусорную корзину по подсказке
  • запустить startup.bat
  • запустить shutdown.bat
  • начать кот по Eclipse

Что я сделал после прочтения всех предложенных ответов и, как я знаю, мой порт уже использовался. Я дважды щелкнул Tomcat на вкладке Серверы в Eclipse, и он открыл обзорную информацию, а затем нашел информацию о порте. Просто изменил конфликтующий порт, так как у меня был порт 8009 (ошибка упоминалась при запуске сервера). Я изменил его на 8008, и он отлично работает. Попробуйте, если измененный порт не будет использоваться, сервер запустится.

Шаг 1: netstat -a -o -n, и он выведет список сетей, ищет локальный адрес, например, 127.0.0.1:8080, и запоминает PID (eq 3624)

C:\>netstat -a -o -n

Шаг 2: Taskkill / F / PID 3624. Запустите эту команду, чтобы убить этот процесс.

C:\>taskkill /F /PID 3624

ссылка на пост

В 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 работает без проблем.

Я проверил все ответы, но informing only to kill PID,

В случае, если у вас есть общий доступ к терминалу, это не поможет или, возможно, у вас нет разрешения убивать PID.

В этом случае вы можете сделать следующее:

Double click on server

Go to Overview and change ports in Ports как это:

введите описание изображения здесь

Для пользователей Windows:

Перейдите в диспетчер задач напрямую с помощью комбинации клавиш CTRL+SHIFT+ESC.

Убейте процессы "java.exe", щелкнув правой кнопкой мыши и выбрав "Завершить задачу".

Если вы работаете в Java EE в Eclipse и пытаетесь запустить Tomcat Server в Eclipse в режиме отладки, вы получите такие ошибки. Вы должны переключиться на предполагаемую отладку в Eclipse. Я решил свою проблему следующим образом.

Иногда, если порты не освобождаются даже после попытки shutdown.bat, которую предложил @BalusC, вы можете прервать процесс javaw. Выполните следующие шаги:

  1. Нажмите на меню "Пуск" и откройте "Windows PowerShell"
  2. Щелкните правой кнопкой мыши перед открытием и выберите "Запуск от имени администратора"
  3. Введите команду PS. Вы можете увидеть изображение следующим образом:Powershell показывает текущие процессы

  4. См. Номер процесса "javaw". Номер процесса - это самый правый номер в столбцах, я выделил в изображении номер процесса javaw, например.

  5. Введите команду убить. Javaw убит, и теперь вы должны быть в состоянии запустить программу.

Вот еще один вариант, чтобы попытаться, если ни одно из указанных выше действий не помогло. Возможно, вы используете Eclipse с общего диска (например, H:). Если это так, переместите / скопируйте весь каталог Eclipse в C: и попробуйте снова.

Мой Eclipse не мог ни открыть порты для сервера Tomcat (с указанной выше ошибкой), ни даже подключиться к Интернету. Я также попробовал другой плагин Tomcat (Sysdeo), который не смог открыть порты тоже.

Вот варианты, которые я попробовал:

Проверьте и убейте другие экземпляры Tomcat

  • В командной строке netstat -ano и проверьте, не используют ли другие процессы конфликтующие порты.
  • Найдите PID и убейте его
  • Попробуйте запустить сервер снова.

Изменить порты Tomcat в Eclipse

  • На вкладке Eclipse Server дважды щелкните экземпляр Tomcat. Это откроет вкладку конфигурации.
  • В разделе "Порты" измените номера портов. (например, 18080).

Убить java.exe и javaw

Смотрите мой другой ответ для Eclipse, не подключенного к Интернету ( /questions/14647632/eclipse-ne-mozhet-podklyuchitsya-k-internetu/14647638#14647638).

В Windows откройте диспетчер задач (Ctrl+Alt+Delete) и перейдите на вкладку «Службы», затем щелкните правой кнопкой мыши tomcat и выберите «Стоп», затем запустите в eclipse.

Это может быть из-за того, что вы неправильно останавливаете службу tomcat. Чтобы сделать это, откройте свой диспетчер задач там вы можете увидеть javaw.exe оказание услуг. Сначала остановите эту услугу. Теперь перезагрузите ваш кот, он работает нормально.

Самое простое исправление, которое мне подходит, - это удаление моих текущих развернутых веб-приложений из tomcat через вкладку "Сервер". Как только я уберу их, проблема исчезнет. Просто повторно разверните проект, выбрав "Запуск от имени"> "Выполнить на сервере".

Я столкнулся с той же проблемой и после поиска ответа, как показано ниже: 1. откройте Monitor Tomcat, как показано ниже:

  1. Просто нажмите стоп, как показано на рисунке ниже:

Наконец, это работает со мной после многих испытаний и предложенных решений.

С уважением, Керелос Михаил

Я получил ту же ошибку и выполнил следующие шаги, чтобы решить ее.

Проверить, действительно ли сейчас используется порт 8080, можно, открыв эту ссылку. http://локальный хост:8080/

Если страница отображается, выполните следующие действия, чтобы решить проблему.

  1. Открыть (это можно сделать, выполнив поиск в строке поиска на вашем компьютере)
  2. Найдите среди сервисов.

  1. Проверьте статусApache Tomcat. В настоящее время он долженRunningсостояние.
  2. Щелкните по нему правой кнопкой мыши и нажмитеstopостановитьserver.

  1. Теперь закройтеServicesприложение и повторно запуститеprogramнаApache Tomcat server.

Теперь ваша программа будет работать.

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

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

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

netstat -a -o -n | findstr 8006

Если вышеуказанная проблема возникает в ОС Windows 7 или 10, проблема возникает из-за того, что Tomcat работает как служба Windows. Чтобы остановить запуск Tomcat в качестве служб Windows, откройте панель управления Windows. Найдите сервис "Apache Tomcat" и остановите его. Другой способ - завершить процесс, запущенный на порте 8080, с помощью cmd.

Откройте cmd, запустив его от имени администратора.

  1. C: \ users \ username> netstat -o -n -a | findstr 0.0: 8080
  2. TCP 0.0.0.0:8080 0.0.0.0:0 СЛУШАТЬ 2160.
  3. Приведенный выше 2160 является идентификатором процесса, запущенного на порту 8080, и завершает этот процесс с помощью следующей команды
    C:\users\username>taskkill /F /PID 2160
  4. Зайдите в IDE и запустите сервер, он запустится

Проблема часто возникает, когда 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 не требуется.

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

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

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

./shutdown.sh

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

введите описание изображения здесь

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

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

Спасибо

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

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

Все вышеперечисленное мне не подходит.

Я обнаружил, что нажал кнопку «Подробности».

Затем, следуя нескольким контекстам с той же ошибкой пути, запускает веб-службу в Eclipse с использованием Tomcat

Удалил повторяющуюся строку, затем я получил еще одну ошибку.

      The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.

Далее Не удается запустить tomcatv9.0 в Eclipse

Тогда это работает.

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

Другие вопросы по тегам