tzumtobel
Occasional Observer

Remote-Debugging ItelliJ Idea

Jump to solution

Halo zusammen,

ich baue aktuell ein Modul.

Der FS Server läuft lokal und ich würde gerne das Remote-Debugging nutzen. Das FSM wird mit Ant gebaut.

Ich deploye das Modul und kann mich erfolgreich per Remote Debug Konfiguration auf localhost:50005 verbinden.

Das einzige Problem: der Debugger stoppt nicht und springt in die von mir gesetzten Breakpoints..

Hatte jemand ggf. bereits dieses / ein ähnliches Problem?

Was ich schon versucht habe:

  • .idea Verzeichnis gelöscht, Projekt neu erstellt
  • IntelliJ caches invalidated & restarted
  • Modul mehrfach neu gebaut & deployed

LG

0 Kudos
12 Replies

Hallo Michael,

aktuell öffne ich ein Dialog-Fenster um dem User während der Laufzeit ein Feedback zum Status der Migration geben zu können.

Da bekam ich als Auftrag gerade schon eine "java.awt.HeadlessException", das liegt dann wohl an dem JDialog Smiley Happy

Darauf kann ich in Zukunft aber auch verzichten.

Die Variante mit dem SA im Debug mode klingt super, das werde ich jetzt mal ausprobieren und mich anschließend nochmal hier melden.

Gruß

0 Kudos

Hallo Michael,

das mit dem Client Debugging hat wunderbar geklappt, meine IDE geht stoppt bei den Breakpoints und ich kann nun endlich debuggen Smiley Happy

Nur nochmal zum Verständnis für mich: wenn ich meine Klasse nun serverseitig ausführen lassen möchte, müsste ich entweder per CMS_RENDER im Template oder aber per Script im Auftrag arbeiten korrekt? Und dann muss ich auch wieder auf die Remote-Debugging Konfiguration zurückgreifen, oder?

Und wenn ich es weiterhin per FS-Script initialisiere, verwende ich die Client-Debugging Variante, korrekt?

Macht es denn in der Performance einen großen Unterschied, bzw. sollte ich bei komplexeren Anwendungen auf serverseitige Ausführung umstellen?

Viele Grüße und vielen Dank, hat mir sehr geholfen und die weitere Entwicklung wird dadurch signifikant schneller sein Smiley Happy

0 Kudos

Hallo Thomas,

freut mich dass es klappt 🙂

Zu Deinen Fragen: Ja, genau. Bis auf das mit dem CMS_RENDER, das war nur ein Beispiel wo eine Executable auf dem Server läuft. Macht in Deinem Kontext aber keinen Sinn. Von daher wäre der Auftrag dann der richtige Weg.

Man kann das Ganze auch so aufbauen dass beides geht. Zum Entwickeln nimmt man dann die Variante mit dem SA im Debug-Modus und wenn das soweit alles klappt baut man es in einen Auftrag ein. Das geht natürlich nicht immer, insbesondere wenn man etwas mit Nutzer-Interaktion hat.

Es gibt natürlich noch die Variante, direkt aus der IDE heraus eine Verbindung zu FS aufzubauen (Stichwort ConnectionManager). Das wäre dann quasi eher eine Applikation. Damit kann man noch einfacher testen weil man nicht dauernd den Client hochfahren muss.

Von der Performance her hängt viel an der Kommunikation. Alles was im Client läuft, redet natürlich mit dem FS-Server was durchaus einiges an Performance kosten kann - insbesondere wenn es um viele und/oder große Objekte geht. Theoretisch gibt es auch noch das Risiko, dass bei einem Verbindungsabbruch oder auch Client-Absturz u.U. ein inkonsistenter Zustand bestehen bleibt (im Sinne von "irgendwie nur halb fertig geworden"). Lang laufende Sachen würde ich darum produktiv immer eher über einen Auftrag machen - aber zum Entwickeln / Testen eine direkte Verbindung bzw. Debug-SA nutzen.

Viele Grüße

Michael

0 Kudos