Anzeige des Java Error Stack in Oracle Forms



Ähnliche Dokumente
Installationsanweisung Gruppenzertifikat

Oracle APEX Installer

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Import des persönlichen Zertifikats in Outlook Express

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Fotostammtisch-Schaumburg

Kleines Handbuch zur Fotogalerie der Pixel AG

Übung: Verwendung von Java-Threads

Durchführung der Datenübernahme nach Reisekosten 2011

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

CodeSaver. Vorwort. Seite 1 von 6

Der einfache Weg zum CFX-Demokonto

IDEP / KN8 für WINDOWS. Schnellstart

Anleitung BFV-Widget-Generator

Anleitung zur Webservice Entwicklung unter Eclipse

Fraunhofer FOKUS ADPSW-INSTALLATION. Abiturdaten-Prüfsoftware. Version 3.0.1, 7. Mai 2013 FRAUNHOFER-INSTITUT FÜR OFFENE KOMMUNIKATIONSSYSTEME FOKUS

Ihre Lizenz ändern. Stand 01/2015

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Webinar-Partnerprogramm

Internet Explorer Version 6

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Sicherer Datenaustausch mit Sticky Password 8

iphone- und ipad-praxis: Kalender optimal synchronisieren

Kommunikations-Management

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Anleitung zur Benutzung des jobup.ch Stellensuchendekontos

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Artikel Schnittstelle über CSV

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

GDPdU Export. Modulbeschreibung. GDPdU Export. Software-Lösungen. Stand: Seite 1

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Menü auf zwei Module verteilt (Joomla 3.4.0)

BFV Widget Kurzdokumentation

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Einfügen von Bildern innerhalb eines Beitrages

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Hex Datei mit Atmel Studio 6 erstellen

Tutorial: Wie kann ich Dokumente verwalten?

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Installation von Wordpress

Persönliches Adressbuch

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Anleitung zum Importieren, Durchführen und Auswerten von Umfragen in Blackboard

How to install freesshd

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Ein Projekt mit JavaFX erstellen

FTP-Server einrichten mit automatischem Datenupload für

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Kurzanleitung zur Installation des OLicense-Servers in Verwendung mit SimDiff/SimMerge

! " # $ " % & Nicki Wruck worldwidewruck

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

etoken mit Thunderbird verwenden

Visual Basic Express Debugging

> Mozilla Firefox 3. Browsereinstellungen optimieren. Übersicht. Stand Juli Seite. Inhalt. 1. Cache und Cookies löschen

Nie wieder eine Sitzung verpassen unser neuer Service für Sie!

Neuerungen in den SK-Programmen Version 3.1 Stand: Juni 2004

Anmeldung als Affiliate bei Affilinet

Java Script für die Nutzung unseres Online-Bestellsystems

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

iphone-kontakte zu Exchange übertragen

Lern- und Kommunikationsplattform Moodle. Kurzanleitung für Lehrende

25 Import der Beispiele

Installation des Add-Ins für Lineare Algebra in Microsoft Excel

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Mediumwechsel - VR-NetWorld Software

Anleitung Typo3-Extension - Raumbuchungssystem

teischl.com Software Design & Services e.u. office@teischl.com

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Grafstat Checkliste Internetbefragung

Urlaubsregel in David

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

ACDSee 10. ACDSee 10: Fotos gruppieren und schneller durchsuchen. Was ist Gruppieren? Fotos gruppieren. Das Inhaltsverzeichnis zum Gruppieren nutzen

Anleitung Captain Logfex 2013

OUTLOOK-DATEN SICHERN

MARCANT - File Delivery System

GITS Steckbriefe Tutorial

SICHERN DER FAVORITEN

32.4 Anpassen von Menüs und Symbolleisten 795i

Umstellung News-System auf cms.sn.schule.de

Schuljahreswechsel im Schul-Webportal

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

SEMINAR Modifikation für die Nutzung des Community Builders

ANLEITUNG NETZEWERK INSTALATION

Anleitungen zum Publizieren Ihrer Homepage

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Hochschulrechenzentrum

Als Lehrende/r oder Mitwirkende/r einer Veranstaltung können Sie das Wiki unter dem Funktionsreiter + aktivieren und deaktivieren.

Lehrer: Einschreibemethoden

Java: Vererbung. Teil 3: super()

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Transkript:

Anzeige des Java Error Stack in Oracle Forms (Version 2.0) Juni 2008 Autoren: Jürgen Menge / Thomas Robert Seite 1 von 7

Oracle Forms bietet seit der Version 6i die Möglichkeit, serverseitig Java-Klassen zu importieren und über einen automatisch generierten PL/SQL-Wrapper Klassen-Methoden aus der Anwendungslogik der Form aufzurufen. Dieses Verfahren eignet sich zum Beispiel für: den Aufruf eigener Java-Klassen die Einbindung von Java APIs (Mail, BPEL, BI Publisher) den Aufruf von Web Services. Hat man die Form erfolgreich entwickelt, steht man jedoch vor einer größeren Hürde. In der Laufzeit-Umgebung müssen alle referenzierten Klassen im CLASSPATH angegeben sein. Anderenfalls stellt die Anwendung mit einer... raised unhandled exception ORA-105100 bzw.... raised unhandled exception ORA-105101 ihren Dienst ein, wenn der fragliche Java-Code aufgerufen wird. Wie kann man nun erfahren, welche Klassen bzw. welche Archive für eine erfolgreiche Ausführung fehlen? Duncan Mills und Jan Carlin haben in ihren Blogs ein Verfahren beschrieben, wie die Java- Fehlermeldungen (Java Error Stack) in der Form angezeigt werden können: http://groundside.com/blog/duncanmills.php?title=exception_handling_in_forms_java_integra&more=1&c=1&tb=1&pb=1 http://groundside.com/blog/jancarlin.php?title=extracting_a_stack_trace_from_a_java_exc&more=1&c=1&tb=1&pb=1 Allerdings musste der Beispiel-Code modifiziert werden, damit die Fehler tatsächlich sichtbar wurden und nicht die nächste Unhandled Exception bei der Aufbereitung des Fehlertextes auftrat. Die folgenden Erläuterungen beziehen sich auf Oracle Forms ab der Version 9.0.4. Für die Version Forms 9.0.2 wird eine Modifikation des Codes im letzten Abschnitt beschrieben. Seite 2 von 7

Anzeige des Java Error Stack (ab Forms 9.0.4) Hier kurz zusammengefasst die notwendigen Schritte: 1. Aufruf des Forms Builder Die zu importierenden Klassen müssen sich im CLASSPATH des Forms Builder befinden. Hierzu gibt es zwei Wege: Erweiterung des Registry-Schlüssels FORMS_BUILDER_CLASSPATH Aufruf des Forms Builders aus einem Script und Setzen der Umgebungs-variable FORMS_BUILDER_CLASSPATH unmittelbar vor dem Aufruf. Das folgende Script soll als Beispiel dienen: set FORMS_BUILDER_CLASSPATH=C:\ora_ods_1012\jdk\jre\lib\rt.jar;C:\ora_ods_1012\forms\java\frmbld.jar;C:\o ra_ods_1012jlib\importer.jar;c:\ora_ods_1012\jlib\debugger.jar;c:\ora_ods_1012\jlib\utj.jar;c:\ora_ods_1012\jlib\d fc.jar;c:\ora_ods_1012\jlib\help4.jar;c:\ora_ods_1012\jlib\oracle_ice.jar;c:\ora_ods_1012\jlib\jewt4.jar;c:\ora_ods _1012\jlib\ewt3.jar;C:\ora_ods_1012\jlib\share.jar;C:\ora_ods_1012\forms\java\frmwebutil.jar;C:\ora_ods_1012\for ms\java\frmall.jar;c:\ora_ods_1012\soap\lib\soap.jar;c:\jdev10132\webservices\lib\wsclient.jar;c:\ora_ods_1012\f orms\demos\jars\formsgraph.jar C:\ora_ods_1012\bin\frmbld.exe Neben den Klassen, die man direkt verwenden will, brauchen wir für die Fehleranzeige die Klassen: java.lang.exception java.lang.stacktraceelement Beide befinden sich in der Datei rt.jar im Oracle Home der Oracle Developer Suite (OH\jdk\jre\lib). 2. Import der benötigten Klassen in die Form Dazu rufen wir aus dem Menü des Forms Builders über Program => Import Java Classes... den Java Importer auf und importieren: die Klassen, die wir direkt aufrufen wollen java.lang.exception java.lang.stacktraceelement Die beiden Klassen können direkt in das Textfeld Import Classes eingegeben werden. Seite 3 von 7

Vor dem Import müssen im Java Importer die Optionen Include inherited methods/fields Include get/set for public Fields aktiviert werden. Befinden sich die Klassen nicht im FORMS_BUILDER_CLASSPATH, treten beim Import Fehler auf. 3. Schreiben der Anwendungslogik Für alle importierten Klassen wird jeweils ein PL/SQL-Package generiert. In der Form können nun Methoden der importierten Klasse aufgerufen werden, indem die entsprechenden PL/SQL Procedures bzw. Functions in der Programmlogik (Trigger, Program Units) verwendet werden. Seite 4 von 7

4. Einbau des Exception Handlers zur Anzeige der Fehlermeldungen Folgender Programmcode muss im Trigger bzw. der Program Unit eingefügt werden, in dem Methoden der importierten Klasse aufgerufen werden. < A n w e n d u n g s l o g i k > exception --check for ORA-105100 when ORA_JAVA.JAVA_ERROR then message('unable to call out to Java, ' ORA_JAVA.LAST_ERROR); --check for ORA-105101 when ORA_JAVA.EXCEPTION_THROWN then raisedexception := exception_.new(ora_java.last_exception); begin :control.excep := 'Exception: ' Exception_.toString(raisedException); exception when ORA_JAVA.JAVA_ERROR then message('unable to call out to Java, ' ORA_JAVA.LAST_ERROR); end; --Get an array of StackTraceElement from the Exception stack_trace:=exception_.getstacktrace(raisedexception); --Loop over all the Elements for i in 0..ora_java.get_array_length(stack_trace) loop --Get each Element stacktrcelement:=ora_java.get_object_array_element(stack_trace, i); --Make a string out of it and add it to the error field :control.excep:=:control.excep (10) stacktraceelement.tostring(stacktrcelement); end loop; ORA_JAVA.CLEAR_EXCEPTION; when OTHERS then message('problem!'); end; Die hervorgehobenen Zeilen machen den Unterschied zu den genannten Blogs deutlich. Die innere Exception fängt Fehler ab, die beim Aufruf der Methode Exception_.troString auftreten können. Zur Anzeige der Fehlermeldungen wird ein mehrzeiliges Textfeld im Control-Block angelegt (CONTROL.EXCEP). 5. Festlegen einer Konfiguration und eines Environment Files Für den Test ist es zweckmäßig in der Datei formsweb.cfg eine benannte Konfiguration einzurichten und dieser eine eigene Environment-Datei zuzuordnen. [webservice] envfile=webservice.env... Seite 5 von 7

In der Environment-Datei müssen in der Umgebungsvariable CLASSPATH alle Verzeichnisse bzw. jar-archive mit den benötigten Klassen aufgelistet sein. 6. Testen der Form auf Basis der festgelegtenkonfiguration Aufruf der Form im Browser mit der festglegten Konfiguration http://<host>:<port>/forms/frmservlet?config=webservice&... Beim Auführen von Methoden der importierten Klasse werden auftretende Fehler im Textfeld angezeigt. In den meisten Fällen wird eine Class not found -Meldung darauf hinweisen, dass im CLASSPATH noch Einträge fehlen. Zur Laufzeit kann der CLASSPATH in der Environment-Datei jederzeit erweitert werden, ohne den OC4J für Forms neu zu starten. Lediglich die Form muss beendet und neu aufgerufen werden. So ist ein relativ rasches Arbeiten möglich, um alle benötigten Klassen zu finden und im CLASSPATH festzulegen. Seite 6 von 7

Anzeige des Java Error Stack (Forms 9.0.2) Da Oracle Forms 9.0.2 mit Java 1.3 ausgeliefert wird, steht für die Klasse Exception kein Konstruktor zur Verfügung, dem die originale Exception übergeben werden kann. In diesem Fall sollte man anstelle von java.lang.exception die Klasse java.lang.throwable importieren. Man kann jetzt im Code des Exception Handling (Schritt 4) die Zeile: raisedexception := exception_.new(ora_java.last_exception); durch message(throwable.tostring(ora_java.last_exception)); oder durch :control.excep := 'Exception: ' throwable.tostring(ora_java.last_exception); ersetzen. Die Verwendung von Throwable anstelle von Exception hat folgende Auswirkungen: es werden auch Fehler sichtbar, die keine Exception auslösen es kann nur der Fehler, nicht aber der komplette Stack Trace ausgegeben werden. Seite 7 von 7