Mittwoch, 1. März 2017

Forms 12c - neue Erkenntnisse mit JNLP und dem Standalone Launcher

Hallo zusammen,

die letzten Tage und Wochen haben wieder neue Erkenntnisse mit den neuen Forms 12c Deployment Optionen gebracht, die es wert sind veröffentlicht zu werden. Ein Community Mitglied hat gesagt, das zeigt die Abgrenzung zwischen Webstart und der Standalone Methode. Von ihm habe ich auch den Lösungshinweis bekommen, wie man mit Webstart verschiedene Zertifikatsquellen einbindet und verarbeitet.

Die erste große Erkenntnis ist: Standalone läßt die Ausführung nicht signierter Jar-Files zu, ob das ein Bug ist, müßte man Michael Ferrante bzw. den Oracle Support fragen. Diese Vermutung bestand seit gestern nach mehreren Fach-Gesprächen über Forms und Java mit dem Community Mitglied.

Als Basis dient meine VM mit Forms 12.2.1.1.0 und bestehenden Sample-Aufrufen. Dafür habe ich aus einem Jar-File die Signatur entfernt.


Nach dem Austausch der Datei in der formsweb.cfg und dem Löschen des Java-Caches hat die Anwendung unerwartet dennnoch gestartet. Der Aufruf war so:



Beim Versuch aus der frmall.jar das Zertifikat zu entfernen, startet die Anwendung nicht mehr.


Diese Versuche laufen zwar nicht auf dem letzten offiziellen Patch, aber dort erwarte ich nichts anderes erstmal. Entweder ein Bug oder ein Feature mit Risiken, neben dem Problem das Cachings der Jar-Files also schon nicht unerheblich. Da macht Webstart doch bislang weniger Mühe.

Zweites Thema des heutigen Postings ist auch direkt die WebstartVariante zum Starten, denn theoretisch hat man mindestens 2 verschiedene Zertifikate, wenn man neben den Standard Oracle Forms Jars auch selbstentwickelte, gekaufte oder freie Jars hat. Diese Dateien müssen dann ja zum Betrieb mit dem Weblogic mit einem offiziell gültigen Zertifikat ausgestattet sein und verschiedene Zertifikate lassen sich nicht zusammen in einer JNLP-Datei einbinden, da muss man doch tricksen.

Der Trick ist recht einfach: pro Zertifikat von einer Trusted Certificate Authority muss eine JNLP-Datei existieren, die dann von der Haupt-JNLP Datei aufgerufen wird. Also bei 3 verschiedenen Zertifikaten auch 3 einzelne  JNLP Dateien.

 Hier ein Beispiel einer Haupt-JNLP Datei, die auf andere JNLP-Dateien verweist:


Und hier ein Ausschnitt aus extensions_1.jnlp:


So lassen sich auf einfache Weise komplexe Strukturen verflachen und auf einzelne Dateien auslagern. Standardmäßig liegen die anderen JNLP-Dateien auch in /forms/java, das kann man aber sicher auch wieder auf andere Folder verbiegen.

Gerade kam die Entwarnung von Frank Hoffmann und dem Test mit Version 12.2.1.2.0. Da ist es so, wie es sein soll und Standalone (fsal) bricht mit Fehler bei der Nicht-Signierung ab:


Puh, dann hat Oracle hier nachgebessert und alles ist hier wieder beim letzten Patch ok.

Viel Spass beim Ausprobieren mit den neuen Deployment Optionen und vielleicht noch mehr Erenntnissen wünscht

Holger