Jede Installation von Lotus Notes 8.5 bringt eine Java-Umgebung mit. Das freut, weil ich mehr Java und weniger LotusScript benutzen kann.
Es gilt allerdings, folgendes zu beachten:
* gui: Ich habe eine standalone Anwendung, eine die auch ohne Notes funktioniert. Das Anwendungsfenster ist ein JFrame
und nutzt EXIT_ON_CLOSE
. EXIT_ON_CLOSE
bewirkt ein System.exit()
und beendet so die zugrundeliegende Java-VM. Notes verhindert mittels SecurityException, dass irgend jemand anders die VM beendet als Notes selbst. Also implementiere zwei Close-Strategien, eine “normale” und eine für den Notes-Kontext mit JFrame.DISPOSE_ON_CLOSE
statt EXIT_ON_CLOSE
.
* jdbc: Nutze den ClassLoader einer bereits geladenen Klasse oder eines Objekts. Denn das ist der ClassLoader mit dem passenden Sicherheitskontext. Der Weg mit ClassLoader.getSystemClassLoader()
wird standalone funktionieren, aber in Notes fehlschlagen.
* Nebenbei für jdbc: Es ist flexibel, die Jar-Datei mit dem jdbc-Treiber nicht in den Classpath zu legen, sondern den Pfad zu ihr durch den Admin konfigurieren zu lassen. Dann kann man die passende Klasse aus der Jar-Datei nachladen. Aber nicht mit dem ClassLoader des Systems. Und deswegen verweigert der DriverManager – unabdinngbar für jdbc – den Dienst mit dieser Klasse. Abhilfe: Proxy-Pattern benutzen, siehe bei kfu