Я получаю следующую ошибку при попытке запустить простую программу JSP на Tomcat в Eclipse.
Несколько портов (8005, 8080, 8009), необходимых для сервера Tomcat v6.0 на локальном хосте, уже используются. Возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. Чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номер порта (ов).
Как это вызвано и как я могу решить это?
У вас уже есть другой экземпляр 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}')
Если вы работаете в Windows, попробуйте это в командной строке:
netstat -ano
Это покажет все используемые порты и идентификатор процесса PID # процесса, который использует этот порт. затем Ctrl+Alt+Del и откройте диспетчер задач, чтобы увидеть, какой процесс это.
Затем вы можете выбрать либо закрыть/остановить его, либо настроить свой сервер на использование другого порта. Чтобы проверить, доступен ли новый выбранный порт (скажем, 8010):
netstat -ano | grep 8010
Если он не возвращает никаких строк, то все в порядке.
Чтобы изменить порт, перейдите в представление Server, откройте server.xml и измените порт там. У меня есть эта запись:
Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
Если вы находитесь в среде Mac, здесь это то, что я сделал.
Найдите идентификатор процесса, запущенный на этом порту из терминала, например, 8080:
lsof -i :8080
и убей это
kill -9 <PID>
Шаги по освобождению порта, который уже используется для запуска сервера 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 и запустите Сервер, он запустится
Если вы используете Eclipse, дважды щелкните по серверам и дважды щелкните по серверу Tomcat, после чего откроется один файл. В этом файле измените HTTP-порт на другой номер порта и сохраните (Ctrl+S) затем снова запустите сервер.
Если Затмение говорит
Несколько портов (8005, 8080, 8009), необходимых для сервера Tomcat v6.0 на локальном хосте, уже используются
Эта ошибка возникает из-за того, что Tomcat может работать в фоновом режиме, поэтому сначала остановите этот сервер. Следуйте приведенным ниже сведениям.
Решение:
Спасибо!
У меня нет другого экземпляра Tomcat, запущенного без какого-либо другого процесса, использующего «порт Tomcat» (в моем случае это порт 8088) . Eclipse отправляет то же сообщение при запуске Tomcat:
.... Возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. Чтобы запустить этот сервер, вам нужно остановить другой процесс или изменить номер порта (ов).
Я решаю проблему следующим образом:
Что я сделал после прочтения всех предложенных ответов и, как я знаю, мой порт уже использовался. Я дважды щелкнул Tomcat на вкладке Серверы в Eclipse, и он открыл обзорную информацию, а затем нашел информацию о порте. Только что изменили конфликтующий порт, так как у меня был порт 8009 (ошибка упоминалась при запуске сервера). Я изменил его на 8008, и он отлично работает. Попробуйте, если измененный порт не будет использоваться, сервер запустится.
Шаг 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
ссылка на пост
Простой способ решить вашу проблему:
Возможно, сервер уже запущен в другом процессе, или системный процесс может использовать порт. Чтобы убить этот порт, сделайте следующее:
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 работает без проблем.
В Windows используйте командудля остановки уже запущенного экземпляра Tomcat и попробуйте запустить его снова в Eclipse, это может сработать.
net stop Tomcat7
Или вы можетеизменить порт в XML-коде сервера, если вы просто хотите запустить другие порты.
Вот еще один вариант, чтобы попытаться, если ни одно из указанных выше действий не помогло. Возможно, вы используете Eclipse с общего диска (например, H :). Если это так, переместите/скопируйте весь каталог Eclipse в C: и попробуйте снова.
Мой Eclipse не мог ни открыть порты для сервера Tomcat (с вышеуказанной ошибкой), ни даже подключиться к Интернету. Я также попробовал другой плагин Tomcat (Sysdeo), который не смог открыть порты тоже.
Вот варианты, которые я попробовал:
Проверьте и убейте другие экземпляры Tomcat
netstat -ano
и проверьте, не используют ли другие процессы конфликтующие порты.Изменить порты Tomcat в Eclipse
Убить Java.exe и javaw
Смотрите мой другой ответ для Eclipse, не подключенного к Интернету ( https://stackoverflow.com/a/37246087/4212710 ).
Если вы работаете в Java EE в Eclipse и пытаетесь запустить Tomcat Server в Eclipse в режиме отладки, то вы получите такие ошибки. Вы должны переключиться на предполагаемую отладку в Eclipse. Я решил свою проблему следующим образом.
Для пользователей Windows:
Перейдите в диспетчер задач напрямую с помощью комбинации клавиш CTRL + SHIFT + ESC.
Убейте процессы «Java.exe», щелкнув правой кнопкой мыши и выбрав «Завершить задачу».
Иногда, если порты не освобождаются даже после попытки shutdown.bat, которую предложил @BalusC, вы можете прервать процесс javaw. Выполните следующие шаги:
Введите команду PS. Вы можете увидеть изображение следующим образом:
См. Номер процесса "javaw". Номер процесса - это самый правый номер в столбцах, например, я выделил в изображении номер процесса javaw.
Введите команду убить. Javaw убит, и теперь вы должны быть в состоянии запустить программу.
Самое простое исправление, которое мне подходит, - это удаление моих текущих развернутых веб-приложений из Tomcat через вкладку «Сервер». Как только я уберу их, проблема исчезнет. Просто повторно разверните проект, выбрав «Запуск от имени»> «Выполнить на сервере».
Проблема часто возникает, когда 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
не требуется.
Я проверил все ответы, но informing only to kill PID
.
В случае, если у вас есть доступ к терминалу, который используется всеми, это не поможет или возможно, у вас нет разрешения убить PID.
В этом случае вы можете сделать следующее:
Double click on server
Go to Overview and change ports in Ports
вот так:
Несколько портов (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
или любой другой процесс, использующий эти порты.
Это может быть потому, что вы не останавливаете службу Tomcat должным образом. Для этого, откройте диспетчер задач там вы можете увидеть сервис javaw.exe
. Сначала остановите эту услугу. Теперь перезагрузите ваш Tomcat, он работает нормально.
Как убить службу Windows, используя PID -
netstat -ano
taskkill /f /pid 5760
Спасибо
убить службу Windows, которая застряла при остановке или запуске
Если вышеуказанная проблема возникает в ОС Windows 7 или 10, проблема возникает из-за того, что Tomcat работает как служба Windows. Чтобы остановить запуск Tomcat в качестве служб Windows, откройте панель управления Windows. Найдите сервис Apache Tomcat и остановите его. Другой способ - завершить процесс, запущенный на порте 8080, с помощью cmd.
Откройте cmd, запустив его от имени администратора.
В случае с Windows, я испытал новый материал .... Остановка Tomcat из папки/bin немедленно не освободит порт 8080. Для освобождения порта требуется около 5-10 минут. Через 10 минут снова, если я попытаюсь запустить свой проект Run-> Run on server .. он позволяет работать.
Я не уверен, правильно ли мое понимание!
Ваш Tomcat, вероятно, уже запущен. Вот почему у вас есть ошибка. У меня была такая же проблема раньше. Я решил это очень просто:
Это все.
В моем случае это выдает ошибку: Порт 8005, необходимый для сервера Tomcat v8.0 на локальном хосте, уже используется
Я изменил порт 8005 в Apache-Tomcat-8.0.39\conf\server.xml, но изменения не отражались. Затем я сделал эти изменения из Eclipse. дважды щелкнув сервер и изменив порт с 8005 до 8006, и это работает.
Перед тем как поставить 8006 я проверил в Windows Shell, доступен ли этот порт или нет. Выполнив следующую команду:
netstat -a -o -n | findstr 8006
Обратитесь к следующему блогу "Как убить Tomcat без перезагрузки компьютера"
http://stanicblog.blogspot.fr/2012/01/how-to-kill-Apache-Tomcat-without.html
Надеюсь, что это поможет кому-то в будущем.
В ОС Windows щелкните правой кнопкой мыши на панели задач -> запустить диспетчер задач -> процесс, затем проверьте Java.exe или javaw запущен, если он запущен, затем щелкните по нему и завершите процесс, затем перезапустите ваш Tom Cat сервер.
Это происходит, когда другие участники проекта также используют те же номера портов, что и вы!!., Дважды щелкните сервер Tomcat, измените номера портов на 8585 или что-то еще. Код теперь начнет работать!
В Eclipse выполните непосредственное удаление папки конфигурации Tomcat в рамках проекта «Серверы» .... Я попытался сделать это как последнюю надежду, и она сработала.