dehaatbi
Returning Observer

Debugging aus der IDE mit fs-isolated-webrt

Hallo,

es gibt ja die Möglichkeit bei der Modulentwicklung mit der IDE zu debuggen indem die Klasse de.espirit.common.bootstrap.Bootstrap gestartet wird. Das ganze ist ja leider nur sehr notdürftig dokumentiert. Prinzipiell hat es aber immer irgendwie geklappt.

Jetzt versuche ich aber ein Modul zu debuggen, welches die fs-isolated-webrt benötigt als Abhängigkeit. Da bekomme ich aber immer Fehlermeldungen beim starten. Ich habe schon festgestellt, dass die Reihenfolge der dependencies in der pom.xml (Maven Projekt) eine Rolle spielt, da sich die Fehlermeldungen unterscheiden.

Wird die fs-isolated-webrt dependency am Ende eingefügt gibt es die Fehlermeldung:

java.lang.ClassCastException: class de.espirit.apache.commons.logging.impl.Log4JLogger cannot be cast to class org.apache.commons.logging.Log (de.espirit.apache.commons.logging.impl.Log4JLogger and org.apache.commons.logging.Log are in unnamed module of loader 'app')

 

Wird sie dagegen am Anfang eingefügt gibt es die Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: sun/swing/plaf/synth/SynthIcon

 

Klappt das Debuggen inklusive fs-isolated-webrt bei irgend jemandem? Sobald ich die dependency komplett raus werfe startet der Site Architect, nur fehlen dann logischerweise die Klassen die ich benötige.

 

Gruß Tobi

0 Kudos
4 Replies
Windmüller
Crownpeak employee

Hallo Tobi,


es gibt ja die Möglichkeit bei der Modulentwicklung mit der IDE zu debuggen indem die Klasse de.espirit.common.bootstrap.Bootstrap gestartet wird. Das ganze ist ja leider nur sehr notdürftig dokumentiert.

Welche Dokumentation meinst Du genau?


Jetzt versuche ich aber ein Modul zu debuggen, welches die fs-isolated-webrt benötigt als Abhängigkeit. Da bekomme ich aber immer Fehlermeldungen beim starten.

Wenn Du Maven verwendest, würde ich das webrt als "provided" deklarieren. Damit sollte es während der Ausführung des SiteArchitect nicht auf dem Classpath liegen.

Die anderen Probleme sehen mir nach fehlenden Parametern für das Java-Modulsystem aus. Mit welcher Java-Version arbeitest Du?

 

Grüße

 Stephan

0 Kudos

Hi,

Welche Dokumentation meinst Du genau?

Ja genau das ist das Problem :-D. Ich kenne eigentlich nur diese Seite: https://community.crownpeak.com/t5/Technical-Support-Knowledge-Base/Debugging-direkt-aus-der-IDE/ta-...

Und die ist ja zum einen veraltet und zum anderen steht da nicht viel.

Wenn Du Maven verwendest, würde ich das webrt als "provided" deklarieren.

Das habe ich bereits probiert. Dann kompiliert das Modul zwar, bringt dann aber ClassNotFound Exceptions sobald ich etwas aus dem webrt verwende.

Die anderen Probleme sehen mir nach fehlenden Parametern für das Java-Modulsystem aus. Mit welcher Java-Version arbeitest Du?

Für das Debugging verwende ich immer Java 11. Mit Java 17 bekomme ich andere Fehler, die auch nach Java Modulsystem klingen:

Exception in thread "main" java.lang.IllegalAccessError: class de.javasoft.plaf.synthetica.SyntheticaLookAndFeel (in unnamed module @0x66d2e7d9) cannot access class sun.swing.DefaultLookup (in module java.desktop) because module java.desktop does not export sun.swing to unnamed module

 

Gibt es hier Parameter die helfen? Insgesamt wäre es glaube ich für Modulentwickler sehr hilfreich wenn der ganze Prozess wie man den Debugger richtig nutzt vernünftig dokumentiert wäre.

 

Gruß Tobi

 

0 Kudos


@dehaatbi wrote:

Gibt es hier Parameter die helfen? Insgesamt wäre es glaube ich für Modulentwickler sehr hilfreich wenn der ganze Prozess wie man den Debugger richtig nutzt vernünftig dokumentiert wäre.


Es ist möglich, den SiteArchitect aus der IDE heraus zu starten. Dieses Vorgehen erfordert aber eine Menge Konfiguration, die aufgrund der Änderungen in Java auch regelmäßig angepasst werden muss. Selbst wenn es eine regelmäßig aktualisierte Dokumentation dazu gäbe, müssten Entwickler diese Änderungen immer manuell nachziehen.

Ein deutlich stabilerer Weg ist das Debugging über den FS-Launcher. Dieser lässt sich so konfigurieren, dass er einen Debug-Port für den entsprechenden Client öffnet. Details findest Du in Kapitel 2.1 der Release-Notes von FirstSpirit 2022.13.

Grüße

Stephan

0 Kudos

Das klingt vielversprechend. Werde es in den nächsten Tagen mal ausprobieren.

Vielen Dank.

Gruß Tobi

0 Kudos