Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Zugriff auf externe .JAR-Files (POP3, SMTP)
Manfred Dillmann:
Hallo zusammen,
vielleicht kann mir jemand auf die Sprünge helfen:
Ich möchte via Java POP-Mails von meinem Provider abholen und per SMTP an meinen Domino-Server weiterleiten. So in etwa das, was der RHPOPConnector auch macht. Ich würde diese Applikation gerne erweitern (Logging der POP-Vorgänge etc.) und nebenbei Java lernen.
So bin ich im Web auf die Java Mail-API gestossen. Der Notes-Client hat offensichtlich die erforderlichen Dateien (mail.jar, mailapi.jar, pop3.jar, smtp.jar, activation.jar) schon im Pfad ...Notes\jvm\lib\ext liegen.
Hierzu ein paar Fragen:
- Wie spreche ich die in den JAR-Files enthaltenen Klassen an, z.B. aus einem Notes-Java-Agenten?
- Wie finde ich eine Beschreibung der verfügbaren Methoden und Eigenschaften dieser Klassen (nach ein paar Stunden auf java.com wusste ich nicht mehr, wonach ich eigentlich suche...)?
- Wie kann man sich geschickt an diese Aufgabenstellung rantasten?
- Vielleicht ein gutes Buch, was diese Thematik im Kontext der Notes-Programmierung behandelt?
- Hat jemand ggf. etwas Beispiel-Code?
Danke für Eure Mühe!
Manfred
Marinero Atlántico:
--- Zitat von: Manfred Dillmann am 01.02.05 - 15:50:36 ---- Wie spreche ich die in den JAR-Files enthaltenen Klassen an, z.B. aus einem Notes-Java-Agenten?
--- Ende Zitat ---
Die sind schon im Classpath (in 6 eben von mir getestet). Musst allerdings Import Statements schreiben.
z.B.:
import javax.mail.BodyPart;
--- Zitat ---- Wie finde ich eine Beschreibung der verfügbaren Methoden und Eigenschaften dieser Klassen (nach ein paar Stunden auf java.com wusste ich nicht mehr, wonach ich eigentlich suche...)?
--- Ende Zitat ---
Die Mail Api ist Bestandteil von J2EE.
Also:
a) Sun Seite: Link J2EE/Server
b) Links auf Seite: Link Documentation
c) Hier habe ich 1.3 ausgewählt (kann aber auch sein, dass im ext-Verzeichnis von Notes 1.2 drin ist.
Zwischenlink: http://java.sun.com/j2ee/reference/docs/index.html
Hier gibt es links einen Link auf Documentation und Api Specification.
(Diese Api Specification kannst du dir auch runterladen. Auch für J2SE gibt es das. Hab beides auf sämtlichen Rechnern mit Bookmark.
d) also: http://java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html
--- Zitat ---- Wie kann man sich geschickt an diese Aufgabenstellung rantasten?
--- Ende Zitat ---
google
--- Zitat ---- Vielleicht ein gutes Buch, was diese Thematik im Kontext der Notes-Programmierung behandelt?
--- Ende Zitat ---
So spezielle Bücher gibt es für die Notes-Programmierung nicht.
Mittlerweile fallen auch bekannte amerikanische Notes-Blogger durch Kathy Sierra/Bert Bates Lobhudeleien auf. Gebt euren Widerstand auf und kauft die Bücher der Head First Serie (Java und Design Patterns). Da steht zwar nix über Mail Programmierung drin, aber eben über Java. Spezifisches über die Java Mail api würde ich wie gesagt erstmal über google suchen. Irgendwo gibt es sicher source code. WICHTIG IST DAS OO MÄSSIGE und Head First Design Patterns ist dafür imho ziemlich ok.
Man kann heute mit Eclipse Notes Java Agenten programmieren. Das ist wirklich viel besser und sowieso der Client von Notes6. Quojote hat irgendwo in diesem Forum den Link gepostet. Vor nicht allzu langer Zeit
--- Zitat ---- Hat jemand ggf. etwas Beispiel-Code?
--- Ende Zitat ---
leider nicht. vielleicht finde ich was. try google.
Axel
Manfred Dillmann:
Hallo Axel,
danke erst mal für Deine Antwort.
>>Die sind schon im Classpath (in 6 eben von mir getestet). Musst allerdings Import Statements schreiben.
z.B.:
import javax.mail.BodyPart; <<
Frage "ausser der Reihe":
Wenn man (z.B. vom Drittanbieter) ein .JAR File hat und importiert das in einen Notes-Agenten - wie spricht man in einem solchen Falle die enthaltenen Class-Files an? Da ist ja nix mit Classpath... oder geht sowas überhaupt nicht? Importieren der .JAR's geht auf jeden Fall...
P.S.
Ich habe mir wahrscheinlich zwischenzeitlich schon einen Wolf "gegoogled". Ich probiere jetzt mal Deine Links.
Danke dir
Manfred
Marinero Atlántico:
Auch mit import, weil diese Klassen eben auch im Classpath sind.
Jar ist einfach eine Ansammlung an .class (und anderer) Dateien. Wenn die jvm das jar sieht, kommt sie auch an die class-Dateien. Darüber braucht man sich keine Gedanken zu machen. Jars sind leicht zu erstellen.
(das folgende enthält u.U. kleinere Fehler, die Richtung stimmt aber)
Der Classpath wird durch sog. Classloader zusammengestellt.
Die Classloader in Notes (und auf anderen Systemen) befinden sich auf unterschiedlichen Ebenen.
1. der Bootstrap Classloader (java.lang.String und sowas richtig wichtiges)
2. die files in dem ext\lib Verzeichnis
3. die durch JavaUserClasses in der Notes.ini referenzierten Class-Dateien und jars.
4. ein paar notes typische jars wie mein "Freund" xml4u.jar im Notes-Programm-Verzeichnis.
5. Pro Agent kann man jars und meiner Ansicht nach auch Klassen direkt einhängen (Projekt bearbeiten).
Bei gleichnamigen Klassen (z.B. eine Klasse de.aja.StringUtil in 2. und in 4.) wird immer die in 2. geladen, also die weiter oben in der Hierarchie (in WAS gibt es eine Möglichkeit das umzudrehen, aber das nur am Rande).
Die in 5. sind Agent spezifisch. 1.,2.,3. und 4. gelten ja für den ganzen Server.
Man kann auch in einer Anwendung auch einen zusätzlichen eigenen Classloader basteln (auch das nur am Rande und ich habs noch nicht gemacht).
Classloaders können nicht nur in Domino schwer zu verstehende Effekte haben. Es ist aber heute weitgehend bekannt.
Axel
Manfred Dillmann:
Hallo Axel,
vielen Dank für die (wie immer) klasse Info!
Mal schauen, wie weit ich komme...
Gruß
Manfred
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln