Der Einstig in die Java EE Welt bringt für jeden Anfänger eine Menge Herausforderungen mit sich: Neben den wichtigsten Prinzipien, Frameworks und Co. müssen auch die Grundlagen im Umgang mit den Maschinen, welche die Java EE treiben, also den Applikationsservern, gemeistert werden. So ist das Anlegen eines neuen WildFly Benutzers eine solche Grundlage, wenn z.B. die Verbindung mit einem entfernten WildFly hergestellt werden soll. Eigentlich ist das ein simples Anliegen, wenn man sich die zahlreichen Tutorials im Internet angesehen hat. Eigentlich – bis man feststellt, dass selbst der einfachste Kommandozeilenbefehl add-user.bat (die add-user.bat Datei befindet sich im bin Ordner des WildFly Applikationsservers) eine auf den ersten Blick verblüffende Meldung zurückgibt:
Verblüffend auf jeden Fall für jenen Java EE-Anfänger, der auch kaum Kenntnisse der Systemadministration hat. Denn die Meldung, dass das System den angegebenen Pfad nicht finden kann (vgl. Bild 1), kommt wiederholt, trotz mehrmaligem Vergewisserns, dass die add-user.bat Datei sich tatsächlich im richtigen Ordner befindet. Ein erneutes Nachsehen im bin Ordner bringt keinen Fortschritt; was sich dagegen als sehr hilfreich erweisen kann, ist, sich an einen erfahreneren Kollegen zu wenden: An dieser Stelle gehen die Verdienste für das Lösen des Problems und gleichzeitig fürs Zustandekommen dieses Beitrags an meinen Kollegen Robin, der die Rädchen an der richtigen Stelle gedreht hat.
Aber der Reihe nach…Die Verwirrung über die Meldung, dass das System den angegebenen Pfad nicht findet, wurde mit einer Codezeile (vgl. Bild 2, roter Pfeil) in der add-user.bat Datei gelöst.
Der erneute Aufruf des add-user.bat Befehls stellt klar, dass das System die Datei wohl findet (vgl. Bild 3), es stiftet aber zeitgleich die nächste Verwirrung: Was wird denn dann nicht gefunden, welcher Pfad ist da nicht richtig gesetzt?
An der Stelle sei auf Robins Erfahrung hingewiesen, hinsichtlich des Tipps, den %JAVA_HOME% Pfad als erstes zu überprüfen, denn die add-user.bat Datei greift auf mehrere System- und/oder Benutzervariablen zu, welche ebenfalls nicht richtig gesetzt sein könnten. Zum Schluss hat dieser Tipp und die richtige Setzung der %JAVA_HOME% Variable den Fehler beseitigt und einem erfolgreichen Anlegen des neuen Benutzers stand nichts mehr im Wege (vgl. Bild 4).
Ursprünglich sollte dieser Beitrag, abgesehen vom abschließenden Satz, an dieser Stelle enden, jedoch brachte das Korrekturlesen durch Igor Chemnitz – besten Dank an Igor hierfür, weiteres Licht in die Dämmerung: Sein Input hat dazu beigetragen, zu verstehen, auf welchen der in der add-user.bat Datei vorhandenen Pfad sich diese unklare Fehlermeldung bezieht. Da ich euch dieses neue Wissen nicht vorenthalten möchte, folgen noch ein paar Sätze zu dieser Problematik.
Die allererste Codezeile der add-user.bat Datei ist per Grundeinstellung des WildFly Servers „echo off“. Dies führt dazu, dass die verarbeiteten Befehle nicht in der Kommandozeile angezeigt werden. Die Änderung in „echo on“ hat zur Folge, dass alle Befehle inklusive der auskommentierten Zeilen auf der Konsole ausgegeben werden. Nun kommt die Fehlermeldung „das System kann den angegebenen Pfad nicht finden“ an der entsprechenden Stelle, nämlich direkt nach dem Befehl, in dem die falsch gesetzte Variable vom Interpreter benutzt wird (vgl. Bild 5).
Wen es also nicht stört, sich die Abarbeitung der Stapelbefehle auf der Konsole Zeile für Zeile anzeigen zu lassen, kann durch „echo on“ in der add-user.bat Datei im Fall der Fälle sehr schnell einen Fehler richtig zuordnen.
Nun, mir ist sehr wohl klar, dass die Frage, aus welchen Gründen die %JAVA_HOME% Variable nicht richtig gesetzt worden ist, von der Logik her an dieser Stelle folgen müsste, allerdings würde eine solche Diskussion den vorgesehenen Umfang dieses Beitrags sprengen, so dass ich nur sagen kann – nach dem Blog ist vor dem Blog.