Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Daniel_Ol am 10.09.08 - 17:17:55
-
Hallo Notes-Gemeinde!
Ich versuche gerade, ein selbst entwickeltes JavaApplet im Web zum laufen zu bringen.
1. Wenn ich das Applet aus Eclipse starte, dann funktioniert es.
2. Wenn ich das Applet aus Notes starte (in einer Maske), dann funktioniert es.
3. Wenn ich das Applet aus Page im Web starte, dann läuft das Applet nicht. Folgenden Fehler wirft die Java-Debug-Konsole:
java.lang.NoClassDefFoundError: lotus/domino/JAppletBase
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: lotus.domino.JAppletBase
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 18 more
Ich vermute, dass ich die Jar nicht richtig erstellt habe. Ist aber nur eine Vermutung, ist das erste Mal, dass ich ein Applet fürs Web erstelle.... kann mir hier vielleicht jemand auf die Sprünge helfen?
Gruß, Daniel
-
Verwendet der Browser ev. eine andere/ältere JVM?
-
Warum sollte denn dein Browser die Klasse "lotus/domino/JAppletBase" kennen? Weil da wo der Browser läuft auch Notes installiert ist?
Dem ist leider nicht so.
Was soll denn das Applet können? Vielleicht kann man die nötigen Daten via Appletparameter übergeben?
-
Der Browser verwendet die gleiche JVM, die ich auch in meinem Eclipse genutzt wird.
Ausgangssituation:
Wir haben 1 Notesdatenbank in der einige 100 000 Dokumente sind. Da dann das Aufbauen von Ansichten irgendwann sehr lange dauert und wir auf einen schnellen Zugriff angewiesen sind, wird diese DB regelmässig archiviert, für jedes Jahr gibt es ein Archiv.
Was ich will:
Das Applet soll alle Dokumente eines Typs über einen definierbaren Zeitraum auslesen und wichtige Infos in eine Tabelle schreiben, so dass eine Übersicht entsteht, die sich ausdrucken lässt. Also ggf. werden auch die Archive gelesen.
Umsetzung:
In Notes habe ich das bereits einmal per Agent umgesetzt. Hat aber ab einer gewiesen Dokumentenzahl ewig gedauert und war vom Code schon recht komplex. Als Applet ist es jetzt neu programmiert und läuft in Notes problemlos und schnell (Ok, da macht das Drucken noch Schwierigkeiten, aber Applets aus Notes drucken ist ja ein Thema für sich).
Bereits jetzt werden verschiedene Werte (Zeitraum, Typ, etc.) an das Applet übergeben. Aber die Kernaufgabe des Applets ist das Durchsuchen der DBen und das zusammenstellen der Infos in der Tabelle, sowie das Anzeigen der Tabelle.
Nun soll diese Funktion auch via Browser möglich sein. Da hab ich mir gedacht, Klasse, ein Applet erzeugen und in Notes und im Web nutzen. Tja, aber wie geassgt, in Notes gehts, im Browser nicht.
Wo bekomme ich denn die lotus/domino/JAppletBase her? Muss ich evtl. die Applet.jar anders erzeugen? Muss da die notes.jar mit rein? Oder gibt es etwas besonders zu beachten, wenn man Applets baut, die via Web auf Notes zugreifen sollen?
P.S.: Der Server ist Version 8.0
-
Du müsstest wahrscheinlich die Notes.jar in das ext Verzeichnis der Browser JVM reinschmeissen.
Aber ich würde Applets nicht mehr verwenden. In Notes 8 hast du doch ganz andere Möglichkeiten wie Composite Applications die sich hier extrem anbieten würden.
Grüße
Ralf
-
Die notes.jar irgendwo hinkopieren bringt es nicht, weil die notes.jar auf die DLL Bibliotheken der Notesinstallation zugreifen.
Ich an deiner Stelle würde ein Servlet schreiben, welches die nötigen Daten formatiert als HTML ausgibt.
-
Die Notes.jar braucht nur bei local Access lokale DLL Dateien. sonst kann die Kommunikation über Corba gemacht werden. Ich würde aber auch eher empfehlen am Server WebServices zu verwenden auf die im Applet dann zugegriffen wird.
Grüße
Ralf
-
Hmm.. schade.
Ok, schon mal vielen Dank für eure Antworten. Werd dann wohl nochmal ein bißchen was ändern müssen, damit ich die Daten direkt vom Server beziehen kann. Ist ja eigentlich auch der elegantere Weg.
-
eine möglichkeit gibts da schon noch... du rufst im applet eine URL auf (zum Beispiel von einem LotusScript - Agenten) und liest das ergebnis mit dem BufferReader ein...
damit sparst du dir den Weg über CORBA...