Не удалось открыть порт отладчика в IntellJ IDEA
У меня проблема с тем, что я не могу настроить приложение в режиме отладки с помощью IntellJ IDE, но режим запуска в порядке.
Моя ОС - Windows 7, IDE - IntellJ IDEA, веб-контейнер - Tomcat 6. Я долго пробовал, менял порт HTTP и порт JMX, но он не работал.
Когда я настроил приложение в режиме отладки с помощью IntellJ, это не удалось, и журнал событий:
16:05:35 Ошибка при выполнении tomcat: невозможно открыть порт отладчика: java.net.BindException "Адрес уже используется: JVM_Bind".
Любая помощь будет оценена.
Ответы
Ответ 1
ключ к проблеме находится в отладчике. У меня была такая же проблема: я убивал каждый процесс, прослушивая порт 8081 (мой порт http), 1099 (порт JMX), порт отключения tomcat, каждый java.exe и все еще ничего.
Дело в том, что этот порт отладчика отличается. Если вы запустите приложение, оно будет проходить через порт, на который настроен Tomcat, 8080, 8081 или что-то еще. Но если вы запустите его в режиме отладки, он пройдет через другой порт.
Если вы измените конфигурацию Tomcat с IntelliJ, последняя вкладка Запуск/Соединение. Здесь перейдите к настройке режима Отладка, и вы увидите его порт. Мой был 50473. Я изменил его на 50472, и все снова начало работать.
Ответ 2
Для меня IntelliJ Event Log
(правый нижний угол) имел следующие журналы:
Error running EntitmentTooling-Debug: Cannot run program "/path-to/apache-tomcat-8.5.15/bin/catalina.sh" (in directory "path-to/apache-tomcat-8.5.15/bin"): error=13, Permission denied
Error running EntitmentTooling-Debug: Unable to open debugger port (127.0.0.1:58804): java.net.SocketException "Socket closed"
Команда
$ chmod a+x /path-to/apache-tomcat-8.5.15/bin/catalina.sh
чтобы достаточно изменить привилегии работали на меня.
Ответ 3
Если вы работаете в Windows, вы можете полностью обойти проблему с сокетом, переключившись на отладку совместно используемой памяти.
![enter image description here]()
Ответ 4
Это работает для меня последовательно (иногда это происходит со мной, когда я делаю такие рестарта tomcat, когда я запускаю интеграционные тесты, например)
1) Найдите процесс, в котором открыт порт 1099
sudo netstat -anp | grep tcp | grep 1099
cp6 0 0 :::1099 :::* LISTEN 9857/java
2) убить его
kill 9857
3) Запустите Tomcat.
Ответ 5
У меня была такая же проблема в Windows 7 и IntellijIdea 14.
Я убил java-процессы, перейдя CTRL + ALT + ESc, найду java и убей его.
Теперь Re-Run, приложение снова должно быть хорошо..
Вы также можете сделать это с помощью командной строки или оболочки (linux), но я нашел это проще для себя
Ответ 6
Я решил проблему таким образом.
- Я пытался убить все процессы java.exe, но это было бесполезно.
- Затем я попытался удалить сервер Tomcat
- Я повторно развернул проект и перезапустил проект, и он сработал.
Смотрите эти ссылки для получения дополнительной информации:
Удалить Tomcat
![Delete Tomcat]()
Добавить новый Tomcat
![Add a new Tomcat]()
Ответ 7
У меня было это точное сообщение.
Причина в том, что некоторые IDE (я использую Eclipse и Intellij) не смогли завершить работу сервера tomcat. Или, возможно, разбился, прежде чем он смог это сделать.
Решением было перейти на C:\...\apache-tomcat-xxx\bin
и запустить shutdown
.
Ответ 8
Во время отладки у меня возникла эта проблема: она работала с
- попробовал сменить мой порт http-8082 до 8083 с Tomcat (в отладке
конфигурации на IntelliJ и в Tomcat- > conf- > server.xml)
- попытался изменить порт JMX с 1099 на 1009.
- попытался изменить порт отладки при запуске/подключении в отладочном режиме Конфигурации
- убил все java-процессы в TaskManager- > Processes.
Ответ 9
Единственное, что сработало для меня, - это зайти в диспетчер задач в Windows и завершить все процессы Java, которые выполняются, щелкнув правой кнопкой мыши → завершить задачу.
Ответ 10
На вкладке Сервер конфигурации Tomcat в IntelliJ измените порт JMX на другой номер.
Ответ 11
Иногда бывает, что при перезагрузке компьютера все в порядке. Возможно, существует конфликт портов.
Перезагрузите компьютер, потому что экземпляры Java или Tomcat убиты во время перезапуска. Вы также можете рассмотреть возможность уничтожения определенных процессов из диспетчера задач
Это также происходит, если в файле context.xml есть проблема. В моем случае я случайно изменил значение контекста.
Ответ 12
У меня такая же проблема, потому что мой компьютер DNS пропустил 127.0.0.1 localhost.
Когда я добавляю 127.0.0.1 localhost в мой файл хоста, все становится нормально.
Ответ 13
Для этого есть разные причины.
- Возможно, возникла проблема с портом отладчика. --- Измените его, чтобы разрешить (ответ на T.M)
- Может возникнуть проблема с intellij cache - Исключить кеш и перезапустить его решает (ответил feng smith)
- Возможно, возникнут проблемы с любым другим портом, например JMX, AJP. Также измените эти номера портов.
Я хотел добавить это как комментарий, но не достаточно rep
Ответ 14
В моем случае не работал ни один из вышеперечисленных методов, т.е. изменение номера порта в конфигурации запуска, перезагрузки компьютера, недействительности кеша в IntelliJ, процесса убийства, отображаемого в netstat (nestat -anob | findstr <port-number>
, а затем tskill <pid>
). Единственное, что в конечном итоге помогло, это запустить и закрыть tomcat вручную через startup.bat
и shutdown.bat
(вы должны использовать соответствующие файлы .sh
для linux и macOS).
Ответ 15
Измените отладочный порт вашего сервера, настроенный в Intelli J.
Это будет исправлено. ![enter image description here]()
Ответ 16
Все остальные решения, к сожалению, не сработали. Это то, что сработало для меня. Я просто изменил порт отладчика на другой номер порта.
Intelij-> preferences-> Сборка, выполнение, развертывание → Debugger-> Встроенный порт server-> (изменить значение)
![enter image description here]()
Ответ 17
В моем случае возникла проблема в server.xml для папки Tomcat/conf, где у меня были дополнительные теги комментариев под другим тегом комментариев. Поэтому я думаю, поскольку в server.xml возникла некоторая проблема, он не смог запустить Tomcat. Кроме того, он копирует папку tomcat из установочного каталога в C:\Users\username.IntelliJIdea2017.2\system\tomcat\Tomcat_service
Ответ 18
Это происходит, когда у вас есть приложение, работающее с тем же номером порта. Один из способов сделать это - принудительно убить процесс. Откройте командную строку как администратор. Запустите команду 'taskkill/IM "java.exe"/F'. Это работало для меня в Windows. Дайте мне знать, если это работает.
Ответ 19
- Проверьте конфигурацию "Выполнить", чтобы увидеть, какой порт он использует (
8081
). - Найдите все другие процессы, использующие этот порт
lsof -t -i :8081
- Убейте процессы в этом порту.
kill PROCESS_ID
- Запустите Tomcat в режиме отладки.
В моем случае я потратил столько времени на смену порта отладчика, но это не было проблемой. Поскольку tomcat не смог запустить порт, который я выбрал в конфигурации " Выполнить", я не смог отладить свой сервис.
Ответ 20
В моем случае у меня был другой проект, открытый в IntelliJ, и Tomcat работал в режиме отладки в этом проекте.
Остановка этого экземпляра Tomcat решила проблему.
Ответ 21
Есть несколько решений для одного и того же.
- Либо мы можем закрыть IDE (например, IntellJ)
- Найдите t IND00123: bin devbratanand $ lsof -i: 30303 ИМЯ УСТРОЙСТВА КОМАНД PID ФАЙЛ РАЗМЕР/ВЫКЛЮЧЕНИЕ УСТРОЙСТВА ИМЯ УЗЛА идея 437 devbratanand 56u IPv4 0xb2720e580a7d6483 0t0 TCP 10.17.130.41:55222->v-p. akqa.local: 30303 (УСТАНОВЛЕНО) IND00123: bin devbratanand $ kill -9 437
Ответ 22
попробуйте chmod a + x/path/to/tomcat/bin/catalina.sh, если вы запустите его в intelliJ