java.lang.Exception: порт 8083 уже используется - PullRequest
8 голосов
/ 07 декабря 2011

Я получаю исключение на консоли:

java.lang.Exception: Port 8083 already in use.

Как разрешить это исключение?Если я узнаю, какая служба использует порт 8083, я могу остановить эту службу и таким образом справиться с этой проблемой.

Спасибо за вашу помощь!

Ответы [ 9 ]

11 голосов
/ 07 декабря 2011

java.lang.Exception: порт 8083 уже используется.

Ошибка означает, что другое приложение уже имеет этот порт, поэтому вы не можете его использовать. Как правило, это означает, что сервер работает (или выходит), но все еще имеет определенный открытый порт. Часто эта ошибка выдается, когда вы пытаетесь завершить работу одного сервера и вызвать новую версию, но первый сервер не полностью отключен при запуске нового. Вам нужно найти рассматриваемый сервер, и вам, возможно, придется убить его, используя kill -9 или что-то еще.

Хорошим инструментом для определения того, в каком приложении открыт порт, является lsof. Это должно работать как минимум под большинством Unixes (Linux) и MacOSX.

lsof -i :8083

lsof для LiSting Open Files в системе, но опция -i для интернет-адресов:

-i [i]   This option selects the listing of files any of whose Internet
         address matches the address specified in i.
        [46][protocol][@hostname|hostaddr][:service|port]
6 голосов
/ 12 марта 2013

Я получаю это с сервером JBoss время от времени. Это не интуитивно понятно, что вам нужно будет перезапустить Java, но описанные выше методы не сработали.

Для Mac OS X :

SLOW

  1. Открыть монитор активности.
  2. Фильтр по "java"
  3. Выйти из любых процессов (обычно только один).
  4. Перезагрузите сервер.

БЫСТРО

ps aux | grep 'java' для отображения текущих процессов Java и их идентификаторов.

kill -9 process_id_goes_here

6 голосов
/ 07 декабря 2011

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

Использование netstat -a из командной строки покажет вам список открытых портов и процессэто использует их.Чем вы можете его убить.

Обновление:

В Windows вы можете использовать netstat -ao для вывода списка всех используемых портов вместе с идентификатором процесса, которому принадлежит соединение.

В Linux вы можете использовать netstat -p для отображения идентификатора процесса / имени программы.

1 голос
/ 07 декабря 2011

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

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

(Я знаю, что Tomcat работает на 8080, и иногда люди меняют его на 8083, но никто не может знать, какая служба работает на вашем компьютере, используя этот порт.)

0 голосов
/ 08 апреля 2015

Убедитесь, что порты отличаются в двух экземплярах JBOSS в файле conf / bindingservices.beans / META-INF / bindings-jboss-beans.xml

Существует около 10 портов для изменения

0 голосов
/ 06 февраля 2015

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

Решение - перейти к диспетчеру процессов вашей операционной системы и убить Затмение и Java-процессы.

0 голосов
/ 11 января 2014

Существует еще одна возможность: возможно, вы пытаетесь привязать неправильный IP-адрес - JBoss сообщит об этом как о невозможности привязки к порту.

Проверьте параметр -b в файле run.sh и убедитесь, что это 0.0.0.0, либо IP-адрес или имя хоста сервера.
- Если это 0.0.0.0, то проблема в том, что порт используется.
- Если это IP, убедитесь, что это правильный IP-адрес, используя / sbin / ifconfig (или ipconfig в Windows)
- Если это имя хоста, тогда запустите
telnet hostname_here
и убедитесь, что IP-адрес, который разрешается, является правильным IP-адресом.

У меня возникла именно эта проблема, и я обнаружил, что кто-то указал неправильный IP-адрес в файле / etc / hosts. Как только я исправил файл, JBoss начал нормально.

0 голосов
/ 07 декабря 2011

Если вы запускаете сервер для развертывания вашего приложения, может случиться так, что любой другой процесс или приложение использует этот порт.Outlook, Skype или другие приложения делают это иногда на моей работе.Используйте программу, такую ​​как CPorts , чтобы разорвать это соединение и перезагрузить сервер.

0 голосов
/ 07 декабря 2011

Либо завершите процесс, использующий порт 8083, либо настройте приложение для запуска на другом порту. Умные приложения пытаются использовать альтернативный порт автоматически.

...