Notes mit Java-GUI und jdbc

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

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.