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

238

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

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

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

  • 0
    У меня была похожая проблема, которая оказалась брандмауэром Windows.
  • 0
    Вероятно, какой-то неживой процесс поддерживает вашего кота в живых. Завершите процесс, либо найдя его идентификатор и завершив его, либо перезагрузив компьютер.
Теги:
tomcat

31 ответ

434
Лучший ответ

У вас уже есть другой экземпляр 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.

  • 1
    идеально, это мучает меня вечно. Я выполнил это как sh shutdown.sh в терминале в каталоге / bin.
  • 2
    Привет BalusC, ты мне нравишься! В моей папке bin нет shutdown.bat . Tomcat был установлен как сервис, а не как почтовый индекс. Остановка службы tomcat в сервисах устранила проблему. Благодарю. Chenqui.
Показать ещё 9 комментариев
49
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • Не нужно перезапускать Eclipse
  • если вы получили вышеуказанную ошибку, просто введите эту строку в терминал
  • снова запустите tomcat в Eclipse.
  • работает только в системе на базе Linux (Ubuntu..etc)
  • 6
    Это лучше kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • 1
    Нет, это не работает для меня
Показать ещё 3 комментария
28

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

netstat -ano

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

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

netstat -ano | grep 8010

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

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

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
  • 0
    Пожалуйста, смотрите мой новый ответ, в котором я включаю сценарий PowerShell, чтобы автоматизировать это, не требуя, чтобы вы открывали диспетчер задач.
  • 1
    findstr для тех, у кого нет grep.
20

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

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

lsof -i :8080

и убейте его:

kill -9 <PID>
  • 0
    простой, но работает как шарм!
  • 0
    работает и на Ubuntu
15

Шаги к свободному порту, который уже используется для запуска сервера 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 и запустите сервер, он запустит

  • 1
    по сей день я этим пользуюсь. Очень полезно и откровенно лучший ответ.
13

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

  • 0
    Это сработало для меня, в то время как другие решения не сработали. Я использую Mint 17.1. Мне пришлось установить tomcat как через Eclipse, так и через apt-get, потому что я не смог найти папку, в которую установил apt-get. По-видимому, поэтому у меня их два. Тем не менее я не смог закрыть первый с помощью команд kill.
  • 0
    работает как шарм ... Thnx ..
12

Если Eclipse говорит

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

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

Решение:

  • Откройте "консольный" вид (окно- > show view- > Console)
  • Затем остановите сервер tomcat.
  • Затем откройте представление "сервер" и запустите сервер, на котором он будет работать.

Спасибо!

  • 0
    Это было просто удивительно, у меня было так много проблем с серверами tomcat, которые по-прежнему оставались открытыми с помощью Eclipse, хотя сам сервер остановился. Thnx!
  • 0
    Это сработало для меня. Я только попробовал: sudo service tomcat stop
10

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

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

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

  • перейдите в bin of tomcat по приглашению
  • запуск startup.bat
  • запуск shutdown.bat
  • start tomcat от Eclipse
  • 1
    Моя проблема заключалась в том, что порты 8005 и 8009 были заняты, однако порт 8080 был свободен, и в это время установка tomcat не выполнялась. Ваше решение помогло мне решить эту проблему, спасибо.
  • 0
    Этот метод странный, но действительно работает
6

Шаг 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

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

  • 0
    Пожалуйста, смотрите мой новый ответ, в котором я включаю сценарий PowerShell для автоматизации этих двух строк.
6

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

4

В Windows используйте команду для остановки уже запущенного экземпляра tomcat и попробуйте запустить его снова в eclipse, это может сработать.

net stop tomcat7 

Или вы можете изменить порт в XML файле сервера, если вы просто хотите использовать другие порты.

  • 1
    работает как шарм, спасибо
3

Простой способ решить вашу проблему:

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

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 отлично работает без каких-либо проблем.

2

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

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

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

2

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

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

Это параметры, которые я пробовал:

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

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

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

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

Убить java.exe и javaw

См. мой другой ответ для Eclipse, не подключающегося к Интернету (https://stackoverflow.com/questions/7778484/eclipse-can-not-connect-to-internet).

2

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

  • Нажмите "Пуск" и откройте "Windows powershell"
  • Щелкните правой кнопкой мыши перед открытием и выберите "Запуск от имени администратора"
  • Введите команду ps. Вы можете увидеть изображение следующим образом: Изображение 6778

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

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

  • 1
    Пожалуйста, смотрите мой новый ответ, в котором я включаю сценарий PowerShell для автоматизации этого.
2

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

1

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

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

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

Double click on server

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

Изображение 6779

1

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

  • 1
    Это смехотворно быстрый способ избавиться от ошибки. Потрясающие!
1

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

0

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

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

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

netstat -a -o -n | findstr 8006
0

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

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

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

./shutdown.sh

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

Изображение 6780

0

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

0

Если вышеуказанная проблема возникает в ОС 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 и запустите сервер, он запустится
0

В ОС Windows щелкните правой кнопкой мыши на панели задач → запустить диспетчер задач → затем проверьте java.exe или javaw, если он запущен, затем нажмите на него и завершите затем перезагрузите сервер tom cat.

  1. Несколько раз skype будет занимать порт 80, в этом случае измените настройки skype и поместите 81 для конфигурации skype или change tomcat.
0

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

  • Перезагрузите компьютер.
  • Открыть Eclipse
  • Запустите Tomcat

Что все.

0

Как убить службу Windows с помощью PID -

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

Спасибо

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

0

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

0

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

  • 0
    Пожалуйста, смотрите мой новый ответ, в котором я включаю сценарий PowerShell для автоматизации этого.
0

В случае окон я испытал новый материал... остановка tomcat из папки /bin немедленно не освободит порт 8080. Для освобождения порта требуется около 5-10 минут. Через 10 минут снова, если я попытаюсь запустить свой проект Run- > Run на сервере.. он позволяет запускать.

Я не уверен, правильно ли я понял!

0

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

0

Обратитесь к следующему блогу "Как убить tomcat без перезагрузки компьютера"

http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html

Надеюсь, это поможет кому-то в будущем.

  • 1
    Ссылка выше не работает. Это указывает на хорошую статью в блоге: stanicblog.blogspot.fr/2012/01/…
  • 0
    Пожалуйста, не добавляйте ссылки для чтения без упоминания важной части. Потому что люди здесь получают ответы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню