Ich kann die Tomcat-Anwendung scheinbar nicht über Eclipse debuggen. Ich habe gesetzt
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
und dann laufe ich bin/catalina.sh
, wo ich Ausgang sehe es zuhört zu sagen dt_socket
auf port 8000
. Aber wenn ich versuche, eine Verbindung zum Port 8000
in Eclipse herzustellen (indem ich einen Eintrag im Remote-Java-Anwendungsmenü hinzufüge), beschwert es sich über eine abgelehnte Verbindung. Irgendwelche Ideen?
Antworten:
Können Sie überprüfen, ob dies funktioniert?
quelle
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
catalina.bat jpda start
suspend
Gibt an, ob der JVM auf den Debugger warten oder fortfahren soll. Siehe dieses Dokument .catalina.sh jpda start
eigentlich reichen. DieJPDA_*
Datei Catalina.sh verfügt über einige Parameter, mit denen beispielsweise der Port geändert werden kann. Eine Dokumentation finden Sie in der Datei.Ich habe einige Zeit damit verbracht, die richtigen Informationen zu erhalten.
Hier finden Sie Schritt für Schritt die detaillierten Informationen.
Umgebung: Windows 7
TomCat-Version: 7.0
IDE: Eclipse
Konfigurationen, die hinzugefügt werden müssen, um das Remote-Debugging mit in Tomcat zu ermöglichen, sind
Ich empfehle die obige Konfiguration nicht für Nicht-Windows-Umgebungen. Um die obige Konfiguration hinzuzufügen, doppelklicken Sie auf den Tomcat-Server, der in der Serveransicht verfügbar ist. Hier finden Sie den folgenden Screenshot.
Fügen Sie nun die obige Konfiguration der Laufzeitumgebung zu Tomcat hinzu. Überprüfen Sie dazu den folgenden Screenshot.
Gehen Sie nun zur Registerkarte "Arugments" unter "Startkonfigurationseigenschaften bearbeiten" (siehe Abbildung unten).
Im Abschnitt GoTo VM-Argumente werden diese Zeilen hinzugefügt.
Jetzt muss die Debug-Schaltfläche in der Eclipse-Symbolleiste verfügbar sein.
Suchen Sie in Debug-Konfigurationen nach "Remote Java Application" und doppelklicken Sie darauf.
Geben Sie im Feld Name einen beliebigen Namen ein.
Wählen Sie im Projektfeld mit der Schaltfläche Durchsuchen das Projekt aus, für das Sie ein Remote-Debugging durchführen möchten.
Der Hostname ist nichts anderes als die Hostadresse. Hier arbeite ich vor Ort, also ist es "localhost".
Zuletzt in der Spalte "Port" sollte der Wert 8000 sein. Abgesehen von den Textfeldern "Name" und "Projekt" werden die beiden anderen Spalten "Host" und "Port" von Eclipse selbst ausgefüllt, wenn Sie nicht dieselben Werte wie angegeben haben. Überprüfen Sie den Screenshot auf Informationen.
Klicken Sie nun mit der rechten Maustaste auf TomcatServer in der Serverkonsole und wählen Sie Hinzufügen und Entfernen aus dem Kontextmenü. In diesem Dialogfeld können Sie das Projekt zum Server hinzufügen.
Führen Sie nun den Tomcat-Server aus.
Führen Sie nun die TomCatDebugConfiguration über das Debug-Tool aus.
Öffnen Sie zuletzt den internen oder externen Browser und führen Sie Ihr Projekt aus. Wenn die Ausführungssteuerung die Haltepunkte erreicht hat, fordert die Eclipse zur Debug-Perspektive auf.
quelle
Bearbeiten Sie im Tomcat-Bin-Verzeichnis, in dem sich
catalina.bat
oder.sh
befindet (auch bekannt als {CATALINA_BASE} / bin): (erstellen, wenn nicht vorhanden):Fügen Sie die folgende Zeile hinzu:
Das ist alles, was Sie tun müssen, Sie müssen die
catalina.bat
(oder.sh
) Datei nicht bearbeiten .Siehe die Kommentare in
catalina.bat
odercatalina.sh
.Möglicherweise müssen Sie die Syntax an Ihre spezielle Umgebung / Situation anpassen. Wenn Sie beispielsweise CATALINA_OPTS bereits definiert haben, können Sie Folgendes tun (in einer Windows-Umgebung):
So debuggen Sie in Eclipse:
run-> Debug-Konfigurationen ...-> Remote Java Application-> New
und geben Sie einen Namen, das Projekt, das Sie debuggen, sowie den oben angegebenen Tomcat-Host und Debug-Port an.
quelle
setenv.bat
dasbin
Verzeichnis setzen Sie eine Zeile wieset JPDA_OPTS= -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
, verwenden Siestartup.bat
, um Tomcat zu startenIn der
catalina.bat
Datei ändern Sie bitte die folgenden.Schritt 1:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
Schritt 2:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
Schritt 3: Führen Sie Tomcat an der Eingabeaufforderung wie folgt aus:
catalina.sh jpda start
Schritt 4: Erstellen Sie dann in der Eclipse eine Debug-Konfiguration
project name
.Standard(Socket Attach)
localhost
8000
(oder eine beliebige Portnummer, aber das sollte auch an anderen Stellen gleich sein).quelle
Viele der obigen Antworten sind korrekt, aber denken Sie daran, dass der Debugger standardmäßig nur localhost überwacht. Wenn Sie einen Remote-Server debuggen, müssen Sie beispielsweise die IP-Adresse angeben, die abgehört werden soll
Beachten Sie, dass die Adresse jetzt 10.1.1.33 : 8000 lautet
Natürlich können Sie auch überprüfen, welche IP tatsächlich verwendet wird, indem Sie ausführen
unter Windows und Linux und filtern Sie den Port mit
find
(Windows) odergrep
(Linux) heraus.quelle
Lassen Sie mich die einfache Möglichkeit zum Aktivieren des Remote-Debugging-Modus in Tomcat7 mit Eclipse (Windows) erläutern.
Schritt 1: Öffnen Sie die Datei bin / startup.bat.
Schritt 2: Fügen Sie die folgenden Zeilen zum Debuggen mit der JDPA-Option hinzu (die Zeile der Datei sollte beginnen).
Schritt 3: in derselben Datei .. zum Ende der Datei gehen diese Zeile ändern -
Schritt 4: Führen Sie dann einfach bin> startup.bat aus (Ihr Tomcat-Server wurde jetzt im Remote-Modus mit Port 8000 ausgeführt).
Schritt 5: Danach können Sie Ihr Quellprojekt per Eclipse-IDE mit dem Remote-Client verbinden.
Schritt 6: Gehen Sie in der Eclipse-IDE zu "Debug-Konfiguration".
Schritt 7: Klicken Sie auf "Remote Java Application" und dann auf "New".
Schritt 8. Stellen Sie auf der Registerkarte "Verbinden" den Parameterwert ein
Schritt 9: Klicken Sie auf Übernehmen und Debuggen.
Schließlich ist Ihr Eclipse-Remoteclient mit dem laufenden Tomcat-Server verbunden (Debug-Modus).
Hoffe, dieser Ansatz könnte Ihnen helfen.
Grüße..
quelle
Ändern Sie Catalina.bat, um es hinzuzufügen
und
Optional: Fügen Sie die folgende Zeile hinzu, um den Debug-Modus standardmäßig auszuführen, wenn Sie startup.bat ausführen
Eclipse oder STS wählen Debug-Konfiguration mit der rechten Maustaste -> neu
quelle
Führen Sie einfach
./catalina.sh jpda start
(Gabeln) oder./catalina.sh jpda run
(keine Gabelung, nicht in der Hilfe erwähnt). Alle hier genannten Optionen verwenden standardmäßig normale Werte.quelle
Wenn immer noch alle oben genannten Funktionen nicht funktionieren, können Sie sie jederzeit zum Skript hinzufügen
quelle
In tomcat 7 hat Catalina.sh diesen Code:
Ii impliziert, dass Sie JPDA einrichten können mit:
Oder mit:
Und zum Schluss:
catalina.sh jpda start
Grüße
quelle
Ich habe dieses Problem festgestellt, als ich Tomcat in einem Docker-Container ausgeführt habe. Um dies zu beheben, stellen Sie sicher, dass Sie das Argument '-p 8000: 8000' in Ihren Docker-Ausführungsbefehl einfügen, um diesen Port für Ihren lokalen Computer verfügbar zu machen. Natürlich benötigen Sie die Datei setenv.sh auch in Ihrem $ {CATALINA_HOME} / bin / in Ihrem Container.
quelle
Das Ändern der Datei startup.bat mit CATALINA_OPTS AND JPDA_OPTS hat bei mir nicht funktioniert, aber das Hinzufügen zu Catalina.bat hat funktioniert
CATALINA_OPTS = "- Xdebug -Xrunjdwp: transport = dt_socket, address = 8000, server = y, suspend = n"
JPDA_OPTS = "- agentlib: jdwp = transport = dt_socket, address = 8000, server = y, suspend = n"
Ändern Sie den Aufruf "% EXECUTABLE%" in% CMD_LINE_ARGS% in
Rufen Sie "% EXECUTABLE%" auf. jpda start% CMD_LINE_ARGS%
Konfigurieren Sie dann die Remote-Java-Anwendung in Ihren Debug-Konfigurationen in Eclipse.
quelle
Wenn Sie Catalina.bat mit dem Texteditor öffnen, sehen Sie zunächst Folgendes: "Legen Sie die Variablen in diesem Skript nicht fest ....." Ändern Sie sie also niemals in diesem Skript, sondern führen Sie die folgenden Schritte aus:
Setzen Sie dann 2 Variablen in dieser Bat-Datei wie:
set CATALINA_OPTS = "- Xdebug -Xrunjdwp: transport = dt_socket, address = 8000, server = y, suspend = n"
set JPDA_OPTS = "- agentlib: jdwp = transport = dt_socket, address = 8000, server = y, suspend = n"
Zuletzt führen Sie das bei cmd aus, dass: "catalogina.bat jpda start"
Erstellen Sie in IDE eine Remote-Debug-Konfiguration und setzen Sie den Host auf die zugehörige Server-IP und den Port auf 8000.
quelle
Für die Version apache-tomcat-8.5.28 tun Sie dies einfach,
Als Standardeinstellungen bereits für uns in Catalina.bat als konfiguriert
Also keine andere Konfiguration nötig. Wenn Sie den Befehl catalogina.bat jpda start ausführen, sehen Sie, dass der Debug-Port 8000 geöffnet ist.
quelle
In dieser Antwort finden Sie Probleme mit Java 8 und Tomcat 9: Java Remote Debugging (JPDA) funktioniert in Tomcat 9 nicht
Dies ähnelt der Warnung von @ DAB, und seine Lösung ist wahrscheinlich sicherer.
quelle
Für Apache-Tomcat-8.5.28
Ändern Sie
JDPA_OPTS
wie unten und führen Sie dann wie auscatalina.bat jpda start
quelle