Debugger-Port in IntelliJ IDEA kann nicht geöffnet werden

79

Ich habe ein Problem, dass ich meine Anwendung mit IntelliJ IDE nicht im Debug-Modus einrichten kann, der Ausführungsmodus jedoch in Ordnung ist.

Mein Betriebssystem ist Windows 7, IDE ist IntelliJ IDEA, Webcontainer ist Tomcat 6. Ich habe es lange versucht, den HTTP-Port und den JMX-Port geändert, aber es hat nicht funktioniert.

Wenn ich die App mit IntelliJ im Debug-Modus eingerichtet habe, ist sie fehlgeschlagen und das Ereignisprotokoll lautet:

16:05:35 Fehler beim Ausführen von tomcat: Debugger-Port kann nicht geöffnet werden: java.net.BindException "Adresse wird bereits verwendet: JVM_Bind".

Feng Smith
quelle
Was ist die übliche Praxis und der Port für tomcat6, um das Debuggen zu ermöglichen? Möglicherweise müssen Sie einige Flags / Einstellungen
aktivieren
@ Wikingersteve danke! Es kommt gelegentlich vor, dass beim Neustart meines Computers alles in Ordnung ist. Möglicherweise ist ein Port ein Konflikt, aber ich weiß nicht, welcher.
Feng Smith
Cool :) Es gibt auch einige nützliche Tools, mit denen Sie feststellen können, welche Anwendung einen Port enthält. Vielleicht lohnt es sich, ein solches Tool zu verwenden, um die Ursache des Konflikts schnell zu ermitteln. Im schlimmsten Fall kann es hilfreich sein, in den Windows-Task-Manager zu schauen und tomcat.exe, java.exe usw. zu stoppen.
Wikingersteve
Musst vorsichtig sein! Der http-Port darf nicht unter 1024 gesetzt werden, wenn Sie nicht der Administrator oder Root sind. Oder es wird immer die Fehlermeldung "Fehler beim Ausführen von Tomcat: Debugger-Port kann nicht geöffnet werden"
angezeigt

Antworten:

143

Der Schlüssel zum Problem liegt im Debugger-Port . Ich hatte das gleiche Problem, ich beendete jeden Prozess, der Port 8081 (mein http-Port), 1099 (JMX-Port), Tomcat-Shutdown-Port, jede java.exe und immer noch nichts abhörte.

Die Sache ist, dass dieser Debugger-Port anders ist. Wenn Sie die Anwendung ausführen, wird sie über den Port geleitet, für den Sie Tomcat konfiguriert haben: 8080, 8081 oder was auch immer. Wenn Sie es jedoch im Debug-Modus ausführen, wird ein anderer Port verwendet.

Wenn Sie Ihre Tomcat-Konfiguration über IntelliJ bearbeiten, ist die letzte Registerkarte Start / Verbindung . Hier sehen Sie die Konfiguration für den Debug- Modus und den Port. Meins war 50473. Ich habe es in 50472 geändert und alles fing wieder an zu funktionieren.

TM
quelle
12
Danke, es funktioniert. Und für diejenigen, die es lösen möchten, indem sie den Prozess schließen, der den Port hält, öffnen Sie den Task-Manager-> Leistung-> Ressourcenmonitor-> Netzwerk. Dort finden Sie den Prozess.
Matrix
4
Was für ein Scherz, dass es keine Option "Nicht verwendeten Port automatisch zuweisen" gibt. XD
Gandalf
Danke vielmals. - @TM Ich habe auch alle Prozesse beendet.
Raj Rajeshwar Singh Rathore
danke, das Ändern des Ports von Startup / Connection hat es für mich
getan
Schade, dass dies mit Intellij 2019.2.3 immer noch passiert. Die Änderung des Debug-Ports ist die einzige Möglichkeit, ihn zum
Laufen
53

Für mich hatte IntelliJ Event Log(rechte untere Ecke) folgende Protokolle:

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"

Der Befehl

$ chmod a+x /path-to/apache-tomcat-8.5.15/bin/catalina.sh

Privilegien ausreichend zu ändern, hat für mich funktioniert.

Chandan
quelle
Betrachten Event Logist der Schlüssel hier, vorheriger Fehler war die Grundursache
yunandtidus
Dies ist die beste Antwort. Funktioniert perfekt!
Manoj Shrestha
Vielen Dank Ihre Antwort lösen mein Problem nach einigen Monaten
Saba Safavi
31

Wenn Sie unter Windows arbeiten, können Sie das Socket-Problem vollständig umgehen, indem Sie zum Debuggen des gemeinsam genutzten Speichers wechseln.

Geben Sie hier die Bildbeschreibung ein

Avner
quelle
3
Das hat mir am Ende geholfen. Vorher musste ich alle paar Stunden die Ports wechseln, manchmal half sogar das nicht ... Das Beenden der Java-Prozesse hat auch nichts gebracht.
IntelliData
Vielen Dank für diesen Vorschlag. Nach dem Wechsel zu Shared Memory ist IntelliJ bei einem anderen Problem fehlgeschlagen (meine server.xml war beschädigt). Es wurde behoben und zurück zu Transport verschoben. Alles gut.
Jacques Koorts
In meinem Fall ist es äußerst frustrierend, da NIEMALS ein Prozess über den Port verwendet wird, von dem IntelliJ sagt, dass er bereits verwendet wird. Diese Option scheint funktioniert zu haben, und ich hoffe, ich werde nie wieder Zeit damit verschwenden, Diagnosetools zu verwenden, um diese nicht vorhandenen Prozesse zu finden, die von IntelliJ gemeldet wurden.
user1445967
9

Dies funktioniert für mich konsistent (es passiert mir von Zeit zu Zeit, wenn ich Dinge wie einen Neustart von Tomcat mache, wenn ich zum Beispiel die Integrationstests durchführe).

1) Suchen Sie den Prozess, bei dem der Port 1099 geöffnet ist

sudo netstat -anp | grep tcp | grep 1099
cp6       0      0 :::1099                 :::*                    LISTEN      9857/java

2) töte es

kill 9857

3) Starten Sie Tomcat.

Tk421
quelle
8

Ich hatte das gleiche Problem in Windows 7 und IntellijIdea 14. Ich habe die Java-Prozesse beendet, indem ich STRG + ALT + ESc gewählt, Java gefunden und beendet habe. Jetzt wieder ausführen, die Anwendung wieder sollte es in Ordnung sein. Sie können es auch mit Kommandozeile oder Shell (Linux) tun, aber ich fand das einfacher für mich

Manam
quelle
7

Bei der Verwendung von IntelliJ ist der gleiche Fehler aufgetreten. Da habe ich mehrere Instanzen von IntelliJ gestartet. Beim Starten von zwei Instanzen wurde es ordnungsgemäß gestartet. Beim Starten eines anderen wurde jedoch der folgende Fehler angezeigt.

unable to open debugger port (127.0.0.1:debug-port-number) java.net.socketexception interrupted function call accept failed

Grundsätzlich gibt es zwei Stellen, an denen Sie Ihre Ports im Zusammenhang mit dem Debuggen in IntelliJ überprüfen können

  1. JMX-Port - Sie können dies finden Geben Sie hier die Bildbeschreibung ein
  2. In Startup / Konfiguration gibt es eine Debug-Option, klicken Sie einfach darauf. Geben Sie hier die Bildbeschreibung ein

Was zu überprüfen ist : Wenn IntelliJ den oben genannten Fehler auslöst, bedeutet dies, dass eines der oben aufgeführten Ports ein Problem darstellt. Um dieses geöffnete Ereignisprotokoll zu überprüfen (es ist in der rechten Ecke unten verfügbar) und die genaue Meldung zu überprüfen. Das Ereignisprotokoll enthält die folgende Meldung

11:19 PM    Error running 'Tomcat-tp': Address localhost:1098 is already in use

11:19 PM    Error running 'Tomcat-tp': Unable to open debugger port (127.0.0.1:51787): java.net.SocketException "Interrupted function call: accept failed"

Lösung 1 Überprüfen Sie den JMX-Port des aktuellen IntelliJ, der nicht mit dem funktionierenden beginnt, und stellen Sie sicher, dass die JMX-Ports in der IntelliJ-Instanz nicht dupliziert sind oder dass die auf Ihrem Computer ausgeführte Software diesen Port nicht verwendet.

Lösung 2 Wenn JMX nicht dupliziert wird, überprüfen Sie Ihren Debug-Port, überprüfen Sie alle IntelliJ-Instanzen und nehmen Sie die Änderungen vor.

Sicherlich hat entweder der JMX- oder der Debug-Port ein Problem. Verwenden Sie einfach den eindeutigen JMX- und Debug-Port, und es wird funktionieren.

Hoffe das wird jemandem helfen.

Kushwaha
quelle
1
Vielen Dank. Ich habe immer mehrere Instanzen von IntelliJ ausgeführt.
cs_pupil
Vielen Dank! Obwohl ich einen Fehler bezüglich meines Debugger-Ports erhalten habe, war das Problem tatsächlich der duplizierte JMX-Port.
Florian Wicher
5

Ich habe das Problem auf diese Weise gelöst.

  1. Ich habe versucht, alle java.exe-Prozesse zu beenden, aber es war nutzlos.
  2. Dann habe ich versucht, den Tomcat-Server zu löschen
  3. Ich habe das Projekt erneut bereitgestellt und das Projekt neu gestartet, und es hat funktioniert.

Weitere Informationen finden Sie unter diesen Links:

Tomcat löschen Tomcat löschen

Fügen Sie einen neuen Tomcat hinzu Fügen Sie einen neuen Tomcat hinzu

Abt
quelle
Ich habe das Problem auf meine Weise gelöst. warum nicht mit anderen teilen?
Abt
Es tut uns leid. Es sah so aus, als würden Sie eine neue Frage stellen. Wurde verwirrt wegen der Gegenwart (" Ich habe das gleiche Problem ")
Adiga
Das ist okay. Genehmigte eine ausstehende Bearbeitung der Antwort, die alle grammatikalischen Fehler beheben sollte.
Adiga
3

Beim Debuggen bekam ich folgendes Problem: Es hat funktioniert mit

  1. Ich habe versucht, meinen Tomcat-http-Port 8082 in 8083 zu ändern (auch in Debug-Konfigurationen unter IntelliJ und in Tomcat-> conf-> server.xml).
  2. habe versucht, den JMX-Port von 1099 auf 1009 zu ändern.
  3. Es wurde versucht, den Debug-Port in Startup / Connection in Debug-Konfigurationen zu ändern
  4. hat alle Java-Prozesse in TaskManager-> Prozesse beendet.
Shweta Shrivastava
quelle
3

Ich hatte genau diese Nachricht.

Der Grund war, dass eine IDE (ich verwende Eclipse und Intellij) den Tomcat-Server nicht herunterfahren konnte. Oder vielleicht abgestürzt, bevor es das konnte.

Die Lösung bestand darin, zu navigieren C:\...\apache-tomcat-xxx\binund auszuführen shutdown.

Florian F.
quelle
2

Ich habe das gleiche Problem, weil der DNS-Fehler meines Computers 127.0.0.1 localhost fehlt. Wenn ich meiner Hostdatei 127.0.0.1 localhost hinzufüge, wird es in Ordnung.

vince
quelle
1
Ich hatte das gleiche Problem und diese Lösung hat auch den Trick für mich getan. Alternativ können Sie die IP in der Intellij Debug-Konfiguration anstelle des Hostnamens "localhost" angeben.
martin_wun
2

Dafür gibt es verschiedene Gründe.
- Es könnte das Problem mit Debugger - Port sein --- Bitte es (beantwortet zu lösen ändern TM )
- Es könnte einige Problem sein , mit intellij Cache --Invalidate Cache und Neustart wird es solve (von antwortete Feng smith )
- Es könnte sein , Problem mit einem anderen Port wie JMX, AJP --- Bitte ändern Sie auch diese Portnummern.
Ich wollte dies als Kommentar hinzufügen, aber nicht genug Wiederholung

RAHUL ROY
quelle
2

Das einzige, was für mich funktioniert hat, ist, unter Windows zum Task-Manager zu wechseln und alle ausgeführten Java-Prozesse zu beenden, indem Sie mit der rechten Maustaste klicken -> Task beenden.

Wahrheitssucher
quelle
2

In Server - Registerkarte von Tomcat - Konfiguration in IntelliJ, ändern JMX - Port an eine andere Nummer.

Majid
quelle
Dies funktionierte für mich und die akzeptierte Antwort nicht.
Sam Orozco
2

Alle anderen Lösungen haben leider nicht funktioniert. Das hat bei mir funktioniert. Ich habe einfach den Debugger-Port in eine andere Portnummer geändert.

Intelij-> Einstellungen-> Erstellen, Ausführen, Bereitstellen -> Debugger-> Eingebauter Server-> Port (Wert ändern)

Geben Sie hier die Bildbeschreibung ein

Rachita Nanda
quelle
1

Es kommt gelegentlich vor, dass beim Neustart meines Computers alles in Ordnung ist. Vielleicht liegt ein Hafenkonflikt vor.

Der Neustart des Computers funktioniert, da beim Neustart Instanzen von Java oder Tomcat beendet werden. Sie können auch in Betracht ziehen, die spezifischen Prozesse im Task-Manager zu beenden

Dies ist auch der Fall, wenn in der Datei context.xml ein Problem vorliegt. In meinem Fall hatte ich versehentlich den Kontextwert geändert.

Feng Smith
quelle
Ich habe alle genannten Lösungen ausprobiert und nichts hat funktioniert, außer dem Neustart des Computers.
Sarah Tammam
1

Keine der oben genannten Methoden hat in meinem Fall funktioniert, dh Ändern der Portnummer in der Ausführungskonfiguration, Neustart des Computers, Ungültigmachen des Cache in IntelliJ, Beenden des in netstat ( nestat -anob | findstr <port-number>und dann tskill <pid>) angezeigten Prozesses . Das einzige, was letztendlich geholfen hat, war das manuelle Starten und Herunterfahren von Tomcat über startup.batund shutdown.bat(Sie sollten entsprechende .shDateien unter Linux und MacOS verwenden).

k13i
quelle
1

Ändern Sie den Debug-Port Ihres Servers, der in Intelli J konfiguriert ist.

Es wird behoben.Geben Sie hier die Bildbeschreibung ein

Shahid Hussain Abbasi
quelle
Auch nach einer Änderung funktioniert es nicht. Ich habe mehrere Instanzen geöffnet und nur wenige davon funktionieren nicht für alle.
Kushwaha
0

In meinem Fall gab es ein Problem in server.xml für den Ordner Tomcat / conf, bei dem ich zusätzliche Kommentar-Tags unter einem anderen Kommentar-Tag hatte. Da es in server.xml ein Problem gab, konnte Tomcat nicht gestartet werden. Außerdem wird der Tomcat-Ordner aus Ihrem Installationsverzeichnis nach C: \ Users \ username.IntelliJIdea2017.2 \ system \ tomcat \ Tomcat_service kopiert

Arun
quelle
1
Ihre Antwort scheint bei der OP-Frage nicht zu helfen. Was sollte er tun?
Flummox - sei nicht böse SE
0

Dies geschieht, wenn Ihre Anwendung auf derselben Portnummer ausgeführt wird. Eine Möglichkeit, dies zu tun, indem der Prozess gewaltsam abgebrochen wird. Öffnen Sie die Eingabeaufforderung als Administrator. Führen Sie den Befehl 'taskkill / IM "java.exe" / F' aus. Das hat bei mir unter Windows funktioniert. Lassen Sie mich wissen, ob dies funktioniert.

Umesh_Shah
quelle
0
  1. Überprüfen Sie die Konfiguration "Ausführen", um festzustellen, welcher Port verwendet wird ( 8081).
  2. Suchen Sie alle anderen Prozesse über diesen Port lsof -t -i :8081
  3. Beenden Sie die Prozesse an diesem Port. kill PROCESS_ID
  4. Führen Sie Tomcat im Debug-Modus aus.

In meinem Fall habe ich so viel Zeit damit verschwendet, den Debugger-Port zu ändern, aber das war nicht das Problem. Da Tomcat nicht auf dem Port ausgeführt werden konnte, den ich in der Konfiguration " Ausführen" ausgewählt hatte , konnte ich meinen Dienst nicht debuggen.

Empfang
quelle
0

In meinem Fall hatte ich ein anderes Projekt in IntelliJ geöffnet und Tomcat wurde in diesem Projekt im Debug-Modus ausgeführt. Durch das Stoppen dieser Tomcat-Instanz wurde das Problem behoben.

Jan Peter
quelle
0

Meine Annahme, dass diese Ausnahme normalerweise auftritt, wenn Tomcat nicht ordnungsgemäß geschlossen ist und die Ports weiterhin enthält. Normalerweise reicht es aus, jeden Prozess abzubrechen, der den 1099-Port abhört. Für Fenster 10:

netstat -aon | find "1099"


taskkill /F /PID $processId
Igor
quelle
0

Wahrscheinlich erhalten Sie dieselbe Fehlermeldung, wenn die Datei standalone.xml in Ihrem Ordner für Standalone / Konfiguration nicht gefunden werden kann. Zumindest habe ich den gleichen Fehler bei der Verwendung eines WildFly 14.0.1:

Fehler beim Ausführen von WildFly 14.01.1: Debugger-Port kann nicht geöffnet werden (127.0.0.1:1233): java.net.SocketException "Socket geschlossen"

ShadowGames
quelle
0

Starten Sie einfach das Android Studio neu, bevor Sie alle ausprobieren. Ich stehe jetzt vor dem gleichen Problem und behebe es auf diese Weise.

Viel Spaß beim Codieren :)

happy_Coding
quelle
0

Für alle, die mit der ähnlichen Nachricht hierher kommen:

Unable to open debugger port (127.0.0.1:50470):
    java.net.SocketException "Interrupted function call: accept failed"

Dies kann durch etwas völlig Unabhängiges verursacht werden, dh es handelt sich nicht um eine Portkonfiguration. Wenn Sie beispielsweise Tomcat ausführen, kann es sein, dass Sie einen ungültigen haben web.xml. Überprüfen Sie Ihr Ereignisprotokoll auf frühere Fehler:

Cannot load C:\...\conf\web.xml: ParseError at [row,col]:[480,29]
            Message: The element type "param-value" must be terminated by the matching end-tag "</param-value>".

Screenshot des IntellIj-Fehlerprotokolls

Druckles
quelle
-1

Es gibt mehrere Lösungen für das gleiche.

  1. Entweder können wir die IDE schließen (zB IntellJ)
  2. Finden Sie t IND00123: bin devbratanand $ lsof -i: 30303 BEFEHLS-PID-BENUTZER FD-TYP GERÄTGRÖSSE / AUS-NODENNAME Idee 437 devbratanand 56u IPv4 0xb2720e580a7d6483 0t0 TCP 10.17.130.41:55222->vmqp-. lokal: 30303 (GEGRÜNDET) IND00123: bin devbratanand $ kill -9 437
devbrat anand
quelle
-2

Versuchen Sie chmod a + x /path/to/tomcat/bin/catalina.sh, wenn Sie es in IntelliJ ausführen

Jianmin LIN
quelle