Hi,
für solche Agenten-Aufgaben ist Java sicherlich z.Zt. kein first class citizen von Lotus-Notes.
Die Nachteile gegenüber Lotus-Script sind:
- kein Debugger
- keine Frontend - Klassen
- um sicher zu sein, dass die Objekte wirklich aufgeräumt werden, mußt du eigentlich auf die richtigen Objekte .recycle() aufrufen. Später mehr dazu in diesem Theater. Der Java-default-Objekt Entsorgungs Mechanismus namens Garbage Collector läuft immer noch nicht richtig. Hat was damit zu tun, dass die Java-Objekte ein JNI-Wrapper um Lotus-RPC code ist und IBM hat immer noch keine Lösung, die entsprechenden RPC-stubs konkret zu entsorgen. (angeblich gilt das auch für Eclipse3 basierte Workplace-Clients, was ich für langsam echt albern halte...)
Java in Notes Bücher? Manning hat einen alten Titel im Angebot.
http://www.manning.com/patton2Ich hab ehrlichgesagt noch nicht mal das, obwohl ich von den sonstigen Manning Java Sachen ca. 30% besitze.
Eine Menge gibts bei notes.net. Die ersten 40 Artikel könnten ganz interessant sein:
206 hitsVielleicht 06/30/2000 Java mail forwarding agent für deinen speziellen Fall. Auf jeden Fall:
08/04/2003 Java access to the Domino Objects, Part 1 und 2
Da dürften aber noch andere interessante Sachen sein.
Gute Notes-Entwicklungs-Bücher wie das von Rocky Oliver haben ein Java-Kapitel, dass vermutlich brauchbar ist.
Java in Notes wird vornehmlich für eng eingegrenzte Spezialaufgaben benutzt: Va.: Integration zu anderen Daten-Sourcen. Hier beliebt: URL Connection + xml-stream. Manche setzen auch gerne Swing-Applets ein. Wir selbst haben erfolgreich eine eigene asynchrone Webservice Integration mit Tomcat geschrieben (ehrlichgesagt, nicht so schwierig).
Das gute an Java ist, dass man dadurch unabhängig von Notes wird (Tomcat, Websphere, Weblogic, etc.).
Außerdem macht OO-Programmierung sowieso mehr Spaß.
... und es ist als Java Programmierer sehr einfach .net Konzepte zu verstehen, weil das in weiten Bereichen ein Java clone ist.
... und es gibt eine sehr große open Source community.
... und konkurrierende Anbieter
... und nicht so viele Spinner, die sich als Experten verkaufen, aber nur ein bischen an der Oberfläche gekrazt haben und ständig durch eine ziemlich generische agressiv-neurotische Verhaltensstruktur langweilen und nerven.
... und moderne IDEs (
www.eclipse.org)
Für die Zukunft ist eine stärkere Integration von Java und Notes zu erwarten. So arbeitet IBM an einer neuen Version des Notes Clients, die auf einer abgespeckten Version der open Source IDE Eclipse basieren wird.
zu deinem konkreten Problem:
Du kannst den kannonischen Namen, den du über
myMailSenderName = myDocument.getItemValueString("From");
erhälst, mit Hilfe der Klasse lotus.domino.Name auslesen.
try {
Name notesName = mySession.createUserName(myMailSender);
myMailSenderName = notesName.getCommon();
} catch (NotesException e) {}
Das extrem unschöne catch für Fälle, in denen sich der Wert des from Feldes nicht in einen Notes-Namen konvertieren lässt. Vermute ich zum Beispiel bei Mails, die aus dem Internet kommen. Habs aber nicht ausprobiert.
Zur Stärkung unserer kollektiven OO-Durchschlagskraft hab ich aus Quatsch angefangen eine Lösung mit late-Binding Polymorphismus und einer Art abstract Factory zu schreiben. Ist aber noch nicht fertig und ein bischen overdesign.
korrigiert mich, wo ich falsch liege
Axel