Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: bandit am 15.12.04 - 11:22:11
-
Ich möchte aus bestimmten Notes Dokumenten eine XML Datei erzeugen. Das Erzeugen der XML Datei soll allerdings in Java erfolgen und nicht in Notes, da dort die Unterstützung von XML besser ist und dort die Daten auch gleich mit einem Schema/DTD geprüft werden können.
Jetzt ist die Frage was es für Möglichkeiten gibt das zu tun. Zum einen könnte man ja direkt von Java auf eine Notes DB zugreifen und sich die Daten aus den Dokumenten holen.
Eine andere Möglichkeit wäre evtl. von Notes aus per Java oder Lotus Script eine Java Klasse aufzurufen (geht das überhaupt von Script?) und dann die Daten per Parameter zu übergeben.
Wie würdet ihr es am besten machen?
-
In R5 geht der Aufruf von Java aus LS noch nicht.
Naja, um nur das XML File zu erstellen, würde ich einen Java Agent verwenden.
-
In R6 kann man also mit LS eine Java Klasse aufrufen?
Wenn ich in R5 einen Java Agenten schreibe kann ich von diesem dann eine Java Klasse aufrufen und dieser ggf. Werte übergeben?
-
In R6 gibts das LS2J, damit kann man direkt Java-klassen aufrufen.
Java Agenten können andere Java-Klassen aufrufen.
-
Alles klar, vielen Dank!
-
in Java erfolgen und nicht in Notes, da dort die Unterstützung von XML besser ist und dort die Daten auch gleich mit einem Schema/DTD geprüft werden können.
Nur als Anmerkung:
Eine xml-Datei kann auch einfach als File erzeugt werden (also ohne xml-apis, einfach wie eine .txt Datei). Das kann unter LoNo deutlich einfacher sein. Hat Kontexte gegeben, wo ich diesen Weg präferiert habe, da ich auch so die Syntax der xml Datei ausreichend kontrollieren konnte.
Natürlich ist dtd/schema-Validierung nicht grundsätzlich "architektonischer Zucker", es gibt aber IMHO Situationen wo man so mit guten Gründen argumentieren kann.
LS2J in Domino6
Keine Erfahrung mit, aber ich würde vor dem Einsatz "LS2J Memory Leak" in google eingeben.
Vorsicht mit solchen Umgebungen.
xml mit Java Agent erzeugen.
Notes verwendet bis R6 sehr alte und nicht-JAXP Standard-konforme xml Java Libraries. Das kann die Entwicklungszeit sehr verlängern, da man nicht einfach code aus Büchern/Web verwenden kann, sondern eben an dieses alte Zeug gebunden ist. Seit 2001 ist jeder normale xml Parser JAXP kompatibel. Wg. classloader-issues kannst du auch nicht einfach so die xml jars ersetzen, sondern musst die entsprechenden jars global im Notes-Programm-Verzeichnis ersetzen (und so nennen wie sie vorher in Notes hiessen -> z.B. xerces.jar in xml4j.jar umbenenennen oder so ähnlich, was wiederum Auswirkungen auf andere Notes Funktionalitäten hat, weil die die "alten" xml libraries erwarten.
if (fileErzeugenNotwendig){
file erzeugen mit Agenten
} else {
zugriff von jvm ausserhalb von notes
// scheduling mit quartz, os oder sonstwie
}