Hallo zusammen,
wir haben bei einem Kunden ein Problem mit der notes-eigenen JVM. Hier soll ein JAR File per Shell Befehl ausgeführt werden. Allerdings scheitern schon Versuche, diesen Befehl an der Konsole korrekt abzusetzten.
Das Kundensystem ist ein
Lotus Domino (r) Server (Release 8.5.3FP6 for UNIX) 23.09.2014 16:19:03
Red Hat Enterprise Linux Server release 5.10 (Tikanga)
(Der Kunde ist eine Bank und ich kann aktuell nicht sagen, in wie weit das System von einer Standardinstallation abweicht)
Das JAR-File, sowie einige Zusatzdateien wurden unter "/export/home/notesuser/notesdat/applikationen/testapp/" abgelegt. Die Notes-VM befindet sich unter "/opt/ibm/notes/lotus/bin/java"
Gebe ich nun an der Kommandozeile folgendes ein:
cd /export/home/notesuser/notesdat/applikationen/testapp/
/opt/ibm/notes/lotus/bin/java -jar ./testjar.jar
ein, so bekomme ich einen "Unable to access jarfile ./testjar.jar" Fehler.
Die Rechte und alles passen. Ich bin auch definitiv im richtigen Verzeichnis, da ich mit "ls" die JAR-Datei sehe.
Gebe ich nämlich den vollen Pfad an
/opt/ibm/notes/lotus/bin/java -jar /export/home/notesuser/notesdat/applikationen/testapp/testjar.jar
so wird die JAR-Datei ausgeführt. Die JAR benötigt aber noch zusätzliche Dateien/Verzeichnisse, welche im aktuellen Verzeichnis liegen sollten (was /export/home/notesuser/notesdat/applikationen/testapp sein sollte, da ich zuvor dahin gewechselt habe)
Leider wechselt die JVM aber aus mir unerklärlichen Gründen in das Notes-Daten Verzeichnis "/export/home/notesuser/notesdat". Dies lässt sich aus den Fehlermeldungen ableiten, die die JAR Datei bringt.
Die Notes.ini habe ich schon geprüft, hier steht "Directory=/export/home/notesuser/notesdat", was aber normal ist.
Bei den anderen Parametern ist auch nichts verdächtiges dabei.
In den Umgebungsvariablen finde ich den Pfad in $HOME und $NOTESDATA_DIR, was aber auch nicht stören sollte.
Fakt ist, dass bei diesem Kunden die JVM nicht mit relativen Pfaden umgehen kann.
Bei allen mir sonst zur Verfügung stehenden Testsystemen führt nämlich ein Aufruf der Form
/opt/ibm/notes/lotus/bin/java -jar ./testjar.jar
die JAR Datei im aktuellen Verzeichnis aus (und sucht diese nicht im Notes-Daten-Verzeichnis. Dies habe ich aber noch nicht gesichert verifiziert - werde noch probieren, was passiert, wenn ich die JAR ins Datenverzeichnis lege, ob dann ein "java ./testjar.jar" immer auf diese zurückgreift, egal in welchem Verzeichnis ich bin).
Aktuell fehlen mir weitere Ansätze.
Gruß
Roland