Domino 9 und frühere Versionen > ND6: Entwicklung
Externes Package in einem Java-Agent
jr:
Hallo,
derzeit kämpfe ich mit einem externen Package, dass ich in meinen Java-Agenten einbinden soll.
Ich habe zwei Dateien konsis.jar und app-xml.jar. Diese enthalten verschiedenen Klassen, die ich in meinem Agenten benutzen muss. Leider funktioniert das aber nicht. Wahrscheinlich mache ich einen Denkfehler (es ist das erste mal, dass ich in Notes mit externen Klassen arbeite).
Ich habe folgendes gemacht:
1. Beide jar-Dateien in "Notes\Data\domino\java" kopiert
2. Auf Systemebene (DOS-Fenster) folgendes definiert:
SET CLASSPATH=C:\Notes\Data\domino\java\konsis.jar; C:\Notes\Data\domino\java\app-xml.jar
3. Im Agentenkopf folgendes definiert:
package de.idl.javaclient.util;
import java.rmi.RemoteException;
import de.idl.application.common.Error;
import de.idl.application.dataexchange.Account;
...
Ich bekomme immer folgende Fehlermeldung:
class de.idl.application.common.Error not found in import
usw.
Außerdem noch ein kleineres Problem:
Wenn ich den Agenten einmal gespeichert habe, steht über der ersten Zeile die übliche Klassenangabe
- de/idl/javaclient/util/JavaAgent.java
Wenn ich jetzt den fehlererzeugenden Agentenheader wieder entferne, bleibt dies stehen und der Agent läuft nicht mehr. Kann man das wieder rückgängig machen oder muss man (wie ich es im Moment tue) den Agenten über die Zwischenablage neu erstellen?
Ich wäre Euch sehr dankbar, wenn Ihr mir sagen könnt, was ich falsch mache.
Im Voraus vielen Dank,
Joachim
Hernan Cortez:
Hi,
bisher hat noch keiner geantwortet, also muss ich das wieder machen. Vermutlich kommt dann wieder Huhsmiester Krause, Ratingen bei Düsseldorf, und erklärt, dass ich dem heroische Leben eines deutschen IT-Angestellten einfach nicht gewachsen bin. Egal… Man tut, was man kann und gibt sein bestes.
Ich hab mir nun das Folgende überlegt:
In der Java-Entwicklung geht es imho weniger um Kreativität oder so was, sondern mehr um das richtige Abtippen, von dem, was in den Büchern steht.
Praktischerweise handelt es sich bei den Java Fragen zumeist um Anfängerfragen. Das ist gut, weil ich finde die Antworten stets über den Index des freiverfügbaren Buches http://www.javabuch.de/ (Handbuch der Javaprogrammierung). Ich kopiere dann die absoluten Links von meinem Lapptop in das Posting und ihr bekommt dann schon raus wie der relative Link heisst.
--- Zitat von: jr am 17.05.04 - 11:54:46 ---derzeit kämpfe ich mit einem externen Package, dass ich in meinen Java-Agenten einbinden soll.
--- Ende Zitat ---
Dramatisierst du nicht ein bischen? Kämpfen? Hey. Make love not war. Alles easy.
Also erstmal hast du packages nicht richtig verstanden.
Muß das unbedingt in dem package de.idl.javaclient.util sein ?
Geht das nicht ohne packages?
Wenn mit packages musst du die Zeile schon drinlassen. Kompiliereinheiten (also die .java und die .class Dateien) spiegeln die packages Struktur wieder. Die Agent.java wird in dem Verzeichnis <AgentRoot>/de/idl/javaclient/util abgespeichert. Vielleicht findest du irgendwo in Notes-Data oder im Notes-Programmverzeichnis diese Dateistruktur.
Diese lustige Zeile, die du unvorsichtigerweise gelöscht hast, scheint bedeutsam für den Designer zu sein, um die .class in das richtige Verzeichnis zu kopieren.
Genauere Infos findest du im Handbuch der Javaprogrammierung: file:///E:/Java_Docu/javabuch3/html/k100082.html#ixa100765
--- Zitat von: jr am 17.05.04 - 11:54:46 ---Ich habe zwei Dateien konsis.jar und app-xml.jar. Diese enthalten verschiedenen Klassen, die ich in meinem Agenten benutzen muss. Leider funktioniert das aber nicht. Wahrscheinlich mache ich einen Denkfehler (es ist das erste mal, dass ich in Notes mit externen Klassen arbeite).
Ich habe folgendes gemacht:
1. Beide jar-Dateien in "Notes\Data\domino\java" kopiert
2. Auf Systemebene (DOS-Fenster) folgendes definiert:
SET CLASSPATH=C:\Notes\Data\domino\java\konsis.jar; C:\Notes\Data\domino\java\app-xml.jar
--- Ende Zitat ---
Nein. Du machst keinen Denkfehler. Du machst einen Lesefehler. In der Domino Dokumentation steht das auch deutlich: Du musst die externen packages bei der Domino VM anmelden. Das geht über 2 Wege. Der 1. Weg ist wg. von mir auch noch nicht so ganz 100% verstandene Phänomenen von Java Class Loading wohl der bessere.
1. öffne nach belieben die Hilfe vom Domino Designer oder vom Domino Administrator und gebe „JavaUserClasses“ ein. Nehme den ersten Treffer und wende was da steht auf deinen Fall an. Starte den Domino Server/Client wo der Agent läuft neu.
2. Alternative: Im Programmverzeichnis von Notes Server und Domino Client gibt es dieses Verzeichnis jvm\lib\ext. Kopiere die jars da rein. Das ist aber vom Class-Loading ein bischen schlechter, weil untergeordneter (mit dem Class-Loading verstehe ich auch nicht so ganz 100%).
Ich nehme für die nächsten 30 Minuten 1 zu 6 Wetten an, dass das genau deshalb nicht funktionieren wird, weil Domino eben keinen JAXP kompatiblen XML-Parser hat. Aber das müssen wir dann morgen besprechen.
Saludos
Axel
jr:
Hallo,
vielen Dank für die Hilfe. Java und Java in Notes sind anscheinend zwei verschiedene Ding. Die Notes-Hilfe habe ich natürlich schon intensiv genutzt - das Problem ist halt, nach was muss man suchen? JavaUserClasses wenn man nach package sucht, da muss man erst einmal drauf kommen...
Es genügte bereits, die beiden jar-Files in das jvm/lib/ext-Verzeichnis zu kopieren, dann klappte es bereits.
Die ersten Zeilen mit "package", "import" sind so vom Klassenhersteller angegeben, deshalb habe ich das direkt so übernommen.
Lesen tu' ich übrigens sehr viel. Das Problem ist nur, dass es zu Java unter Notes nur sehr wenig gibt. Das "Handbuch der Java-Programmierung" (javabuch.de) habe ich übrigens auch, aber da steht leider auch nichts über Notes drin.
Also, noch mal vielen Dank,
Joachim
Hernan Cortez:
--- Zitat von: jr am 17.05.04 - 21:19:05 ---Lesen tu' ich übrigens sehr viel. Das Problem ist nur, dass es zu Java unter Notes nur sehr wenig gibt. Das "Handbuch der Java-Programmierung" (javabuch.de) habe ich übrigens auch, aber da steht leider auch nichts über Notes drin.
--- Ende Zitat ---
Is ok. Bei meinen Antworten darf man einfach nicht zu sensibel sein. :)
Ich bin nicht der einzige Zyniker in dieser Branche.
In einem 1000 Seiten Buch können eben keine Spezial-Themen wie Legacy-Integration behandelt werden.
Gruß Axel
jr:
--- Zitat ---Is ok. Bei meinen Antworten darf man einfach nicht zu sensibel sein.
Ich bin nicht der einzige Zyniker in dieser Branche.
--- Ende Zitat ---
Keine Angst, in dieser Hinsicht bin ich absolut nicht sensibel. Im Gegenteil, ich freu mich, wenn mir jemand helfen will und vor allem kann :)
Du hast recht, anscheinend sind 1000 Seiten oftmals nicht genug. Aber im Ernst: Kennst Du ein gutes Buch, dass sich mit Notes-Java befasst. Reine Java-Bücher gibt es zu hunderten, aber Java in Notes scheint echt eine Seltenheit zu sein. Im Allgemeinen sind mir Bücher lieber als elektronische Nachschlagewerke. Mit einer Stichwortsuche unter Goolge findet man 2000 Treffer, von denen der 127. dann der gesuchte ist. Aber oftmals geht es nicht anders - Das ist halt das Informationszeitalter :'(
Was ich kenne zum Them "Java unter Notes" ist:
- Schulungsunterlagen von Herdt
- Java-Anwendungen für Notes/Domino
Notes mache ich jetzt seit fast 10 Jahren; Java habe ich auch schon einiges gemacht; Aber Java in Notes ist für mich halt noch relativ neu.
Gruß und nochmals Danke,
Joachim
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln