Ich habe ein Problem, dass ich meine Anwendung nicht mit der IntellJ IDE im Debug-Modus einrichten kann, aber der Run-Modus ist OK.
Mein Betriebssystem ist Windows 7, IDE ist IntellJ IDEA, der Web-Container ist Tomcat 6. Ich habe lange versucht, den HTTP-Port und den JMX-Port zu ändern, aber es hat nicht funktioniert.
Wenn ich die App im Debug-Modus mit IntellJ einrichte, schlug die App fehl 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".
Jede Hilfe wird geschätzt.
der Schlüssel zum Problem ist in Debugger Port . Ich hatte das gleiche Problem, ich habe jeden Prozess beendet, der auf Port 8081 (mein http-Port), 1099 (JMX-Port), Tomcat-Shutdown-Port, jeder Java.exe und noch nichts zu hören war.
Die Sache ist diese Debugger-Port ist anders. Wenn Sie die Anwendung ausführen, wird der Port, für den Sie Tomcat konfiguriert haben, 8080, 8081 oder einen anderen Port verwendet. Wenn Sie es jedoch im Debug-Modus ausführen, wird ein anderer Port verwendet.
Wenn Sie Ihre Tomcat-Konfiguration von IntelliJ aus bearbeiten, lautet die letzte Registerkarte Startup/Connection . Hier sehen Sie die Konfiguration für Debug Mode und Sie sehen den Port. Mein war 50473. Ich habe ihn auf 50472 geändert und alles begann wieder zu funktionieren.
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, funktionierte für mich.
Dies funktioniert bei mir beständig (es passiert mir von Zeit zu Zeit, wenn ich beispielsweise Tomcat neu starte, wenn ich zum Beispiel die Integrationstests durchführe)
1) Finden 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.
Ich hatte das gleiche Problem in Windows 7 und IntellijIdea 14. ... Ich habe die Java-Prozesse mit STRG + ALT + ESc beendet, Java gesucht und das Programm abgebrochen . Jetzt erneut ausführen, sollte die Anwendung wieder in Ordnung sein. Sie können es auch mit der Befehlszeile oder mit Shell (Linux) machen, aber ich fand das für mich einfacher
Ich hatte genau diese Nachricht.
Der Grund war, dass einige IDE (ich verwende Eclipse und Intellij) den Tomcat-Server nicht herunterfahren konnte. Oder vielleicht abgestürzt, bevor es dazu kam.
Die Lösung bestand darin, zu C:\...\Apache-Tomcat-xxx\bin
zu navigieren und shutdown
auszuführen.
Ich habe das Problem auf diese Weise gelöst.
Siehe diese Links für weitere Informationen:
Löschen Sie Tomcat
Einen neuen Tomcat hinzufügen
Das einzige, was für mich funktioniert hat, ist, zum Task-Manager unter Windows zu gehen und alle laufenden Java-Prozesse durch Klicken mit der rechten Maustaste -> Task beenden zu beenden.
Ich habe das gleiche Problem, da der DNS-Fehler meines Computers auf "127.0.0.1 localhost" fehlt. Wenn ich der Host-Datei 127.0.0.1 localhost hinzufüge, wird es in Ordnung.
Es kommt gelegentlich vor, dass nach einem Neustart des Computers alles in Ordnung ist. Vielleicht gibt es einen Hafenkonflikt.
Starten Sie den Computer neu, da Java-Instanzen von Java oder Tomcat während des Neustarts abgebrochen werden. Sie können auch in Betracht ziehen, bestimmte Prozesse über den Task-Manager zu beenden
Dies geschieht auch, wenn in der Datei context.xml ein Problem vorliegt. In meinem Fall hatte ich versehentlich den Kontextwert geändert.
Dafür gibt es verschiedene Gründe.
- Möglicherweise liegt ein Problem mit dem Debugger-Port vor --- Bitte ändern Sie ihn zur Behebung (beantwortet von T.M )
- Möglicherweise gibt es ein Problem mit dem intellij-Cache - Cache ungültig machen und Neustart löst es (wird von feng smith beantwortet)
- Möglicherweise gibt es ein Problem mit einem anderen Port wie JMX, AJP --- Bitte ändern Sie auch diese Portnummern.
Ich wollte dies als Kommentar hinzufügen, aber nicht genug rep
Beim Debugging bekam ich dieses Problem: Es hat funktioniert
In meinem Fall gab es in server.xml ein Problem für den Tomcat/conf-Ordner, bei dem ich zusätzliche Kommentar-Tags unter einem anderen Kommentar-Tag hatte. Ich denke, da es ein Problem in server.xml gab, konnte es Tomcat nicht starten. Außerdem kopiert es den Tomcat-Ordner aus Ihrem Installationsverzeichnis nach C:\Users\Benutzername
Keine der oben genannten Methoden funktionierte in meinem Fall, d. H. Das Ändern der Portnummer in der Laufkonfiguration, der Neustart der Maschine, der Ungültigmachen des Caches in IntelliJ und der in netstat abgebildete Prozess (nestat -anob | findstr <port-number>
und dann tskill <pid>
). Das einzige, was schließlich geholfen hat, war, Tomcat manuell über startup.bat
und shutdown.bat
zu starten und herunterzufahren (Sie sollten entsprechende .sh
-Dateien unter Linux und macOS verwenden).
Ändern Sie auf der Registerkarte Server der Tomcat-Konfiguration in IntelliJ JMX-Port in eine andere Nummer.
Dies geschieht, wenn Sie die Anwendung an derselben Portnummer ausführen. Eine Möglichkeit, dies zu tun, indem der Prozess gewaltsam beendet wird. Öffnen Sie die Eingabeaufforderung als Administrator. Führen Sie den Befehl 'taskkill/IM "Java.exe"/F "aus. Das hat für mich in Windows funktioniert. Sag mir, ob das funktioniert.
8081
). lsof -t -i :8081
kill PROCESS_ID
In meinem Fall habe ich so viel Zeit damit verschwendet, debugger port zu ändern, aber war nicht das Problem. Da Tomcat nicht auf dem Port laufen konnte, den ich in der Konfiguration von Run ausgewählt habe, konnte ich meinen Service nicht debuggen.