Подтвердить что ты не робот

Grails: Разрешение "Сервер не запускался для порта 8080: адрес уже используется".

Я получаю эту ошибку при попытке решить "Server failed to start for port 8080: Address already in use"

 Error executing script 8888: For input string: ""

Может ли кто-нибудь помочь? Не знаю, что случилось. Спасибо.

4b9b3361

Ответ 1

Когда номер порта 8080 уже используется и вы хотите повторно использовать тот же порт, вы должны убить его процесс:

Сначала проверьте pid процесса, который использует порт 8080. Для этого выполните:

lsof -w -n -i tcp:8080

Result after running Command

В приведенном выше примере pid составляет 3812 для процесса, который использует порт 9090

Обратите внимание на PID. PID может отличаться на вашей машине. Нам нужно это для выполнения следующей команды: kill process

поэтому вам придется протестировать его с помощью run-app:

grails run-app

ОБНОВЛЕНИЕ: Поскольку вывод lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}' является PID , Вы можете автоматически уничтожить процесс порта PID:

 kill -9 `lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'`

Ответ 2

Если вы используете Grails/Groovy Tool Suite (Eclipse based IDE), выберите Запустить как > Запустить конфигурации.... Затем на вкладке Grails введите так:

-Dserver.port=8050 run-app

Итак, Grails будет работать на порту 8050 вместо порта по умолчанию (8080).

Ответ 3

Сообщение

Серверу не удалось запустить порт 8080: адрес уже используется

указывает, что какой-то другой процесс на вашем компьютере уже привязал себя к порту 8080. Я бы предположил, что это экземпляр Tomcat, запущенный либо из-за того, что вы его запустили, либо из-за того, что вы используете. p >

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

Что касается второй ошибки в отношении script 8888, я понятия не имею. Grails не пытается запустить этот script в моей среде, поэтому я предполагаю, что он связан с плагином, который вы установили.

Ответ 4

Проблема заключается в том, что номер порта 8080 уже используется. Таким образом, вам либо нужно остановить этот процесс, чтобы освободить место для нового, либо указать grails -Dserver.port=8090 run-app при запуске приложения.

Однако, поскольку у вас есть ошибка script, возможно, вы не указали порт в свой BuildConfig.groovy.

здесь решение: добавьте grails.server.port.http=8888 в BuildConfig.groovy

см. комментарий здесь: http://www.icodeya.com/2012/06/grails-resolving-server-failed-to-start.html

Ответ 5

Если вы используете STS или Eclipse (или, возможно, любую среду, построенную на Eclipse), один из вариантов - перейти в перспективу отладки (Окно → Открыть перспектива → Отладка). Оттуда вы можете щелкнуть правой кнопкой мыши на своем рабочем сервере и нажать Завершить и перезапустить. Это убьет текущий сервер и перезапустится на том же порту, чтобы вы не получили сообщение Server failed to start for port 8080: Address already in use.

Что касается Error executing script 8888: For input string: "", я не видел его раньше, но кажется, что @ShootingStar имеет ответ.

Ответ 6

Когда номер порта 8080 уже используется и вы хотите повторно использовать тот же порт, вы должны убить его процесс: Используйте fuser 8080/tcp, чтобы напечатать вам PID процесса, связанного с этим портом.

И этот fuser -k 8080/tcp убьет этот процесс.

Woks только для Linux. Более универсальным является использование lsof -i4 (или 6 для IPv6).

ПРИМЕР: если порт равен 8080, запустите на терминале:

 fuser -k -n tcp 8080

Вот и все!

Ответ 7

КАК УБИТЬ ДЕНЕЖНЫЙ ПОРТ

откройте командную строку и введите C: > netstat -a -n -o | найти "8080" найти PID примера порта  TCP 0.0.0.0:8888 0.0.0.0:09 ПРОСЛУШИВАНИЕ 9068

Далее

C: > taskkill/PID 9068/F УСПЕХ: Процесс с PID 9068 завершен.

Ответ 8

Легче других опубликованных ответов.

В окне консоли есть значок X и XX. Когда вы наводите курсор на него. Вы увидите воздушные шары, показывающие "Удалить запуск" и "Удалить все завершенные запуска".

Нажмите на них обоих. Eclipse очистит все существующие серверы, чтобы вы могли перезапустить сервер на своем порту по умолчанию.

Ответ 9

Вам нужно убить процесс, который выполняется на порту 8080; Поэтому используйте команду:

netstat -plten |grep java

используется grep java, поскольку tomcat использует java как свои процессы.

Он покажет список процессов с номером порта и идентификатором процесса

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

число перед /java является идентификатором процесса. Теперь используйте команду kill, чтобы убить процесс

kill -9 16085

-9 подразумевает, что процесс будет убит принудительно.

Ответ 10

Это означает, что существует служба, использующая порт 8080. Вы можете ввести на терминале команду "netstat", чтобы проверить это.

Как остановить сервис, использующий этот порт? В Windows вы можете остановить такой сервис с помощью этих шагов:

  1. Войдите в вашу систему как администратор
  2. В меню ПУСК выберите ПАНЕЛЬ УПРАВЛЕНИЯ, затем АДМИНИСТРАТИВНЫЕ ИНСТРУМЕНТЫ, затем УСЛУГИ.
  3. В списке найдите службу с именем, оканчивающимся на: Веб-сервер, и остановите его.

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