it-swarm.com.ru

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

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

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

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

240
elle

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

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

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

netstat -ano

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

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

netstat -ano | grep 8010

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

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

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

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

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

lsof -i :8080

и убей это

kill -9 <PID>
20
Timeless

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

16
Sachindra N. Pandey

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

14
abc

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

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

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

Решение:

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

Спасибо!

12
Ashu Phaugat

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

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

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

  • перейти в корзину Tomcat по подсказке
  • запустить startup.bat
  • запустить shutdown.bat
  • запустить Tomcat по Eclipse
10
giocorito

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

6
DeVilCry2ME

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

C:\>netstat -a -o -n

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

C:\>taskkill /F /PID 3624

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

6
Sandeep Bhardwaj

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

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

1) Загрузите TCPView (только 285kb) по следующей ссылке.

http://technet.Microsoft.com/en-in/sysinternals/bb897437.aspx

2) Извлеките папку и запустите приложение TCPView.

3) Щелкните правой кнопкой мыши по Java.exe (поскольку 8009 8005 портов обычно используются процессами Java) и выберите параметр End Process.

это легко остановит другой процесс .. 

NOTE: Запуск TOMCATPATH ​​/ bin/shutdown.bat может не завершить работу Tomcat, если он содержит демона или неуправляемого потоки. В таких случаях TCPView работает без проблем.

4
shivadarshan

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

net stop Tomcat7 

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

4
Gauranga

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

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

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

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

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

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

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

Убить Java.exe и javaw

Смотрите мой другой ответ для Eclipse, не подключенного к Интернету ( https://stackoverflow.com/a/37246087/4212710 ).

2
typoerrpr

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

2
Jitendra

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

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

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

2
Arif Acar

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

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

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

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

2
Tiny Jaguar

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

1
Felipe Leão

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

1
Xharlie

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

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

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

Double click on server

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

 enter image description here

1
v8-E

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

0
Zeeshan

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

0
Ramki

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

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

Спасибо

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

0
Pankaj Barnwal

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

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

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

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

./shutdown.sh

это закроет ваш работающий Tomcat 

 enter image description here

0
Kamran

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

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

0
Laxman

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

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

Это все.

0
Purgoufr

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

Я изменил порт 8005 в Apache-Tomcat-8.0.39\conf\server.xml, но изменения не отражались. Затем я сделал эти изменения из Eclipse. дважды щелкнув сервер и изменив порт с 8005 до 8006, и это работает. enter image description here

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

netstat -a -o -n | findstr 8006
0
Tahir Akram

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

http://stanicblog.blogspot.fr/2012/01/how-to-kill-Apache-Tomcat-without.html

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

0
Edmund Ng

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

  1. иногда Skype будет занимать порт 80, в этом случае измените настройки Skype и установите 81 для Skype или измените конфигурацию Tomcat.
0
Vasundhara

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

0
Shivendra

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

0
giocorito