Aufruf eines Web Service aus einer Forms-Anwendung
OK, für einen OO-erfahrenen Entwickler scheint dies eine klare Sache zu sein. Aber manchmal trägt es zum Verständnis bei, die Dinge etwas zu sortieren.
Soll ein Web Service aus einer Oracle Forms-Anwendung aufgerufen werden, sind ein oder mehrere Java-Klassen des Web Service-Client in das Forms-Modul zu importieren.
Dabei können verschiedene Fälle auftreten:
- Wenn die Klasse static ist, enthält die Signatur der importierten Methoden in den meisten Fällen nur einfache Datentypen wie in diesem Beispiel:
FUNCTION <method>(
a0 VARCHAR2,
a1 VARCHAR2,
a2 VARCHAR2) RETURN BOOLEAN;
Diese Methode kann auf einfache Weise innerhalb der Forms-Applikation aufgerufen werden, indem die entsprechenden Werte übergeben werden. - Wenn die Klasse nicht vom Typ static ist, d.h. es werden Instanzen dieser Klasse zur Laufzeit erzeugt, findet man in der Signatur der generierten PL/SQL-Methode ein Objekt:
FUNCTION <method>(
obj ORA_JAVA.JOBJECT,
a0 VARCHAR2,
a1 VARCHAR2) RETURN ORA_JAVA.JOBJECT;
In diesem Fall muss beim Aufruf ein initialisiertes Objekt dieser Klasse übergeben werden. Dieses Objekt kann durch die Methode new() innerhalb des PL/SQL-Codes erzeugt werden:
obj := <class>.new(); - Wenn die Klasse nicht vom Typ static ist und ein zusätzliches Objekt als Parameter benötigt, sieht die Signatur der PL/SQL-Methode folgendermaßen aus:
FUNCTION <method>(
obj ORA_JAVA.JOBJECT,
a0 ORA_JAVA.JOBJECT,
a1 VARCHAR2,
a2 VARCHAR2) RETURN ORA_JAVA.JOBJECT;
In diesem Fall muss wie im zweiten Fall ein initialisiertes Objekt für diese Klasse mittels der Methode new() im PL/SQL-Code erzeugt werden:
obj := <class>.new();
Zusätzlich muss ein Objekt für den Parameter übergeben werden, indem die entsprechende Klasse (des Parameter-Objektes) in das Forms-Modul importiert und eine neue Instanz dieser Klasse erzeugt wird:
a0: = <additional_class>.new();
<JM>
[...] Nachdem die neue Version des BI Publisher 10.1.3.4 verfügbar ist, wollte ich einen bestehenden Web Service-Aufruf aus einer Forms-Applikation testen. Der Aufruf konnte ohne Fehler ausgeführt werden, der erzeugte [...]
Web Services im BI Publisher 10.1.3.4 « Oracle Fusion Middleware Blog
Dezember 8, 2008 um 12:37