Кілька портів (8005, 8080, 8009), необхідних Tomcat Server у localhost, вже використовуються


258

Я отримую таку помилку, коли намагаюся запустити просту програму JSP на Tomcat в Eclipse.

Кілька портів (8005, 8080, 8009), необхідних Tomcat v6.0 Server у localhost, вже використовуються. Сервер, можливо, вже працює в іншому процесі, або системний процес може використовувати порт. Щоб запустити цей сервер, вам потрібно буде зупинити інший процес або змінити номер (и) порту.

Як це спричинено і як це можна вирішити?


У мене була подібна проблема, яка виявилася брандмауером Windows.
— Джеймс Оравець

Ймовірно, якийсь нежить може зберегти твій маточник живим. знищити процес, знайшовши його ідентифікатор та припинивши його, або перезавантаживши машину.
— Феліпе Лео

Ви можете використовувати ці команди, щоб зупинити послуги tomcat, які вже працюють з командної консолі. netstat -ano | findStr 8080щоб знайти запущені служби, а потім знайти ідентифікатор процесу та скопіювати pid та запустити команду знову якtaskkill /F /PID pid_number
— Mdhar9e

Відповіді:


473

У вас є ще один екземпляр 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.


1
ідеально, це мене мучить назавжди. Я виконав його як sh shutdown.shу терміналі в каталозі / bin.
— Danny Englander

2
Привіт, BalusC, мені подобається! У shutdown.batмоїй папці бін немає. Tomcat встановлювався як сервіс, а не як блискавка. Припинення послуги tomcat в сервісах вирішило проблему. Дякую. Ченкві.
— Ерран Морад

1
@Borat: Вітаємо вас. Майте на увазі, що вам справді краще видалити службу та натомість отримати поштовий індекс.
— BalusC

6
"вбий усі процеси java та / або javaw" працював на мене, дякую.
— Thariq Nugrohotomo

3
Відкриття system monitorабо task managerвбивство Java-процесу, який використовується about 400 MBабо більше RAM, також вирішить проблему. Це несвідомо резервує процес.
— гадюка

55
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}')
— firesofmay

Це не працює для мене (Монетний двір 17.1). Це просто дає мені допомогу для killкоманди.
— Делете

Це працювало для мене. Однак я хотів дізнатися, чи є у мене 2 екземпляри запущених, і мені потрібно змусити зупинити один за допомогою цього методу, як я зрозуміти, яку закрити. Спасибі
— Гаутам

29

Якщо ви працюєте у Windows, спробуйте це у командному рядку:

netstat -ano

Це покаже всі використовувані порти та ідентифікатор процесу PID # процесу, який використовує цей порт. Потім Ctrl+ Alt+ Delта відкрийте диспетчер завдань, щоб побачити, який процес це.

Потім ви можете або закрити / зупинити його, або налаштувати сервер на інший порт. Щоб перевірити, чи доступний новий обраний порт (скажімо, 8010), зробіть це:

netstat -ano | grep 8010

Якщо він не повертає жодних рядків, то ви все добре.

Щоб змінити порт, перейдіть до подання Сервер, відкрийте server.xml та змініть порт. Міна має цей запис:

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

Перегляньте мою нову відповідь, в якій я включаю скрипт PowerShell, щоб автоматизувати це, не вимагаючи від вас відкривати диспетчер завдань.
— Xharlie

1
findstrдля тих, хто не має грепу.
— eckes

25

Якщо ви перебуваєте на mac середовищі, ось що я зробив.

Знайдіть ідентифікатор процесу, що працює на цьому порту з терміналу, наприклад, 8080:

lsof -i :8080

і вбийте його:

kill -9 <PID>  

Приклад:

Можливо, ви побачите такий результат:

MacSys:bin krunal.$ lsof -i :8080

COMMAND   PID     USER   FD   TYPE     DEVICE  SIZE/OFF   NODE  NAME
java     21347   krunal  52u  IPv6      XXX      0t0      TCP  *:http-xxx (LISTEN)

і вбийте: ( kill -9 21347)


20

Кроки до вільного порту, який вже використовується для запуску tomcat-сервера в Eclipse

Наприклад, припустимо, що використовується порт 8080, нам потрібно зробити безкоштовний 8080 для запуску tomcat

Крок 1:

C: \ Користувачі \ ім'я користувача> netstat -o -n -a | findstr 0,0: 8080

TCP 0.0.0.0:3000 0.0.0.0grees LISTENING 3116

Тепер ми бачимо, що LISTENING-порт - 3116 для 8080,

Нам потрібно вбити 3116 зараз

Крок 2: -

C: \ Користувачі \ ім'я користувача> taskkill / F / PID 3116

Крок 3: Перейдіть до Eclipse і запустіть Server, він запуститься


14

Якщо ви використовуєте Eclipse, то двічі клацніть по серверах і двічі клацніть на сервері tomcat, тоді один файл відкриється. У цьому файлі змініть HTTP-порт на інший номер порту і збережіть ( Ctrl+ S), а потім знову запустіть сервер.


Це працювало для мене, поки інших рішень не було. Я використовую Монету 17.1. Мені довелося встановити tomcat як через Eclipse, так і через apt-get, тому що я не міг знайти папку, де apt-get його встановив. Тож, мабуть, тому я маю двох. І все-таки я не зміг закрити перший із командами kill.
— Делете

12

Якщо затьмарення говорить

Кілька портів (8005, 8080, 8009), потрібних Tomcat v6.0 Server у localhost, вже використовуються

Ця помилка виникає через те, що tomcat може працювати у фоновому режимі, тому спочатку зупиніть цей сервер. Дотримуйтесь нижче деталей.

Рішення таке:

  1. Відкрийте подання "консоль" (вікно-> показати перегляд-> консоль)
  2. Потім зупиніть сервер tomcat.
  3. Потім відкрийте подання "сервер" і запустіть сервер, на якому він буде працювати.

Дякую!


Це працювало для мене. Я лише спробував: sudo service tomcat stop
— Emiliano Sangoi

10

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

.... Сервер вже може працювати в іншому процесі, або системний процес може використовувати порт. Щоб запустити цей сервер, вам потрібно буде зупинити інший процес або змінити номер (и) порту.

Я вирішую проблему таким чином:

  • підкажіть у смітник
  • запуск startup.bat
  • запуск shutdown.bat
  • запустити tomcat від Eclipse

1
Моя проблема полягала в тому, що 8005 і 8009 порти були зайняті, однак 8080 порт був вільним і в той час не працювала установка tomcat. Ваше рішення допомогло мені виправити це питання, дякую.
— Бенас

7

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


6

Крок 1: netstat -a -o -n, і він відобразить мережевий список, знайдіть локальну адресу на зразок 127.0.0.1:8080 та відзначте PID (eq 3624)

C:\>netstat -a -o -n

Крок 2: завдання завдання / F / PID 3624 . Виконайте цю команду, щоб знищити цей процес.

C:\>taskkill /F /PID 3624

посилання на пост


Перегляньте мою нову відповідь, в якій я включаю скрипт PowerShell для автоматизації цих двох рядків.
— Xharlie

5

У Windows використовувати команду для зупинки вже запущеного екземпляра tomcat та спробувати запустити його ще раз у затемненні, це може працювати.

net stop tomcat7 

Або ви можете змінити порт у XML сервера, якщо ви просто хочете запускатись на деяких інших портах.


4

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

Сервер, можливо, вже працює в іншому процесі, або системний процес може використовувати порт. Щоб убити цей порт, виконайте наступне:

1) Завантажте TCPView (всього 285 Кб) з наступного посилання.

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

2) Витягніть папку та запустіть програму TCPView .

3) Клацніть правою кнопкою миші на java.exe (оскільки 8009 8005 порти зазвичай використовуються в Java-процесі) та виберіть пункт « Завершити процес» .

це легко зупинить інший процес ..

ПРИМІТКА : Запуск TOMCATPATH ​​/ bin / shutdown.bat не може вимкнути Tomcat, якщо він містить деякі демонстраційні або некеровані потоки. У таких випадках TCPView працює без проблем.


2

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


2

Іноді, якщо порти не звільнені навіть після спроби shutdown.bat, що запропонував @BalusC, ви можете вбити процес javaw. Виконайте наступні дії:

  1. Клацніть на меню "Пуск" і відкрийте "Панель повноважень Windows"
  2. Клацніть правою кнопкою миші перед відкриттям та виберіть "Запустити як адміністратор"
  3. Введіть команду ps. Ви можете побачити зображення таким чином: Powershell показує поточні пробіги, що працюють

  4. Дивіться номер процесу "javaw". Номер процесу - це найправіше число в стовпцях, я виділив, наприклад, номер процесу зображення javaw.

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


1
Будь ласка, дивіться мою нову відповідь, в якій я включаю сценарій PowerShell для автоматизації цього.
— Xharlie

2

Ось ще один варіант спробувати, якщо жодне з вищезазначених зусиль не допомогло. Можливо, ви використовуєте 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

Для користувачів Windows:

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

Вбийте процеси "java.exe", клацнувши правою кнопкою миші та вибравши "Закінчити завдання".


2

Я перевірив усі відповіді, але informing only to kill PID.

У випадку, якщо у вас є доступ до терміналу, яким всі спільні, це не допоможе або, можливо, у вас немає дозволу на вбивство PID .

У цьому випадку ви можете:

Double click on server

Go to Overview and change ports in Ports подобається це:

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


1

Більш просте виправлення, яке працює для мене, - це видалення моїх поточних розгорнутих веб-сайтів з tomcat через вкладку «Сервер». Як тільки я їх видалю, проблема зникає. Просто повторно розгорніть проект, перейшовши на Запуск як> Запустити на сервері.


1

Проблема часто виникає, коли 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

Якщо вищезазначена проблема виникає в ОС 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.0grees LISTENING 2160.
  3. Вищевказаний 2160 - це ідентифікатор процесу, що працює на порту 8080, і вбиває цей процес, використовуючи таку команду
    C: \ users \ username> taskkill / F / PID 2160
  4. Перейдіть до IDE і запустіть Server, він запуститься

1

Це може бути тому, що ви не припиняєте належним чином службу Tomcat. Для цього відкрийте диспетчер завдань і там ви зможете побачити javaw.exeслужбу. Спочатку припиніть цю послугу. Тепер перезапустіть ваш tomcat, він прекрасно працює.


1

У моєму випадку вона давала мені помилку: порт 8005, необхідний Tomcat v8.0 Server у localhost, вже використовується

Я змінив порт 8005 в apache-tomcat-8.0.39 \ conf \ server.xml, але зміни не відображалися. Тоді я зробив ці зміни від затемнення. подвійним клацанням сервера та зміною порту з 8005 на 8006, і він працює. введіть тут опис зображення

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

netstat -a -o -n | findstr 8006

1

Я зіткнувся з тією ж проблемою і після пошуку відповіді, як показано нижче: 1. відкрийте Monitor Tomcat, як показано нижче: введіть тут опис зображення

  1. Просто натисніть стоп, як показано на малюнку нижче:

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

Нарешті, він працює зі мною після багатьох випробувань та запропонованих рішень.

З повагою, Керелос Михайло


0

На Eclipse зробіть необроблене видалення папки конфігурації Tomcat в рамках проекту "Сервери". Я спробував це як останню надію, і це спрацювало.


0

У випадку з Windows, у мене з’явився новий матеріал ... зупинка tomcat з / bin папки негайно не випустить порт 8080. Щоб звільнити порт, потрібно 5-10 хвилин. Через 10 хвилин знову, якщо я спробую запустити мій проект Run-> Run on server .. це дозволяє запустити.

Я не впевнений, чи правильно я розумію!


0

Дивіться наступний блог "як вбити tomcat без необхідності перезавантажувати комп'ютер"

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

Сподіваюся, це допоможе комусь у майбутньому.


1
Посилання вище мертве. Це вказує на хорошу статтю в блозі: stanicblog.blogspot.fr/2012/01/…
— dounyy

Будь ласка, не додайте посилання для читання, не згадуючи важливу частину. Тому що тут люди отримують відповіді.
— Менюка Ішан

0

Це відбувається, коли інші в проекті також використовують ті ж номери портів, що і ви! двічі клацніть сервер tomcat, змініть номери портів на 8585 або що завгодно. Код тепер почне працювати!


0

Як вбити службу Windows за допомогою PID -

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

Дякую

вбити службу Windows, яка застрягла при зупинці або запуску


0

Кілька портів (8005, 8080, 8009), потрібних Tomcat vX.X Server у localhost, вже використовуються

Щоб перевірити, чи використовується інший екземпляр 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будь-який інший процес за допомогою цих портів.


Будь ласка, дивіться мою нову відповідь, в якій я включаю сценарій PowerShell для автоматизації цього.
— Xharlie

0

Ваш Tomcat, ймовірно, вже працює. Ось чому ви отримали помилку. У мене були ті ж проблеми і раніше. Я вирішив це дуже просто:

  1. Перезавантажте комп'ютер
  2. Відкрите затемнення
  3. Запустіть свій Tomcat

Це все.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.