Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Leon am 07.08.06 - 09:08:58

Titel: Lotus Notes Agenten mit Eclipse / NetBeans erstellen
Beitrag von: Leon am 07.08.06 - 09:08:58
Ich versuche derzeit, mittels NetBeans einen Agenten für Lotus Notes zu entwickeln. Hierzu habe ich eine klasse Anleitung im Netz gefunden. (Hier geht's zur besagten Anleitung (http://dev.kanngard.net/Permalinks/ID_20020203120711.html)) Diese habe ich Punkt für Punkt abgearbeitet und nun scheint soweit auch fast alles zu funktionieren. Aber leider eben auch nur fast.

Mein Problem sieht so aus, dass ich nach dem Starten des Agenten (aus NetBeans heraus) im Output Fenster von NetBeans folgende Fehlermeldung erhalte:

Code
init:
deps-jar:
Compiling 1 source file to Z:\Java\DominoAgentTest\build\classes
compile:
run:
Running agent...
No AgentContext document found for agent
   <agent=AgentRunner Test>
   <database=AgentRunnerTests.nsf>
   <server=local>
BUILD SUCCESSFUL (total time: 1 second)

Der AgentContext wurde jedoch korrekt in der Datenbank AgentRunner.nsf angelegt. (Siehe bild)

(http://img365.imageshack.us/img365/8657/agentrunnertestsen2.th.jpg) (http://img365.imageshack.us/my.php?image=agentrunnertestsen2.jpg)

Was könnte ich falsch gemacht haben ?

Ich verwende Lotus Notes R5.0.11 und NetBeans 5.0.

MfG

Leon
Titel: Re: Lotus Notes Agenten mit NetBeans erstellen
Beitrag von: Leon am 07.08.06 - 16:54:21
So, das Problem habe ich nun zwar lösen können, stehe nun allerdings gleich vor dem nächsten.

Die Lösung des Problems von vorhin war schlicht und einfach folgendes:

Quelltext
Code
package de.atnotes;

import lotus.domino.*;


public class AgentRunnerTest extends DebugAgentBase
{
	public static void main(String[] args) throws Exception
	{
		System.out.println("Entered main.");
		
		AgentRunner.main( new String[] {
				  "AgentRunnerTest",
				  "c:\\Programme\\Notes\\Data\\AgentRunnerTests.nsf",
				  "local" } );
	}
	
	
	public void NotesMain()
	{
		System.out.println("Entered NotesMain.");
	}
}

Anstelle von "AgentRunnerTests.nsf" musste ich den absoluten Pfad angeben, also "c:\\Programme\\Notes\\Data\\AgentRunnerTests.nsf".

Nun findet er zwar den AgentContext und er wird sogar vollständig und korrekt ausgeführt, aber dennoch werden nach Beendigung folgende Fehler im Output-Fenster von NetBeans angezeigt:

Code
Entered main.
Entered NotesMain.
lotus.domino.NotesException
	at lotus.domino.local.Session.NcreateDateTime(Native Method)
	at lotus.domino.local.Session.createDateTime(Session.java:843)
	at lotus.domino.local.DebugSession.stampAgentContextDoc(DebugSession.java:224)
	at lotus.domino.DebugAgentBase.termAgentRunner(DebugAgentBase.java:49)
	at lotus.domino.AgentRunner.runAgent(AgentRunner.java:142)
	at lotus.domino.AgentRunner.runNotes(AgentRunner.java:54)
	at lotus.domino.NotesThread.run(NotesThread.java:203)

Wenn ich jedoch meine Klasse anstelle von DebugAgentBase um AgentBase erweitere, das Projekt kompiliere, die erzeugte .class Datei im Domino Designer in meinen Agenten importiere und den Agenten schließlich unter Notes ausführe, werden keinerlei Fehler in der Java Debug-Konsole von Notes angezeigt. Die Fehler bekomme ich nur in meiner Entwicklerumgebung wenn ich die Klasse um DebugAgentBase erweitere. Im fertigen Agenten unter Notes bekomme ich diese Fehler nicht.

MfG

Leon
Titel: Re: Lotus Notes Agenten mit NetBeans erstellen
Beitrag von: Leon am 17.08.06 - 23:19:15
Inzwischen bin ich auf Eclipse 3.2 gewechselt, aber der o.g. Fehler taucht auch dort nach Beendigung eines Agents auf. Es muss doch mal irgendwann jemand einen Agent für Lotus Notes/Domino R5 unter Eclipse oder NetBeans erstellt haben. Vergesse ich evt. ein bestimmtes Package (JAR) einzubinden ?  Bisher binde ich nur die Notes.jar ein.

MfG

Leon
Titel: Re: Lotus Notes Agenten mit NetBeans erstellen
Beitrag von: flaite am 18.08.06 - 16:05:22
Hier ist ein Beschreibung wie jemand erfolgreich Netbeans für Notes-Agent Entwicklung benutzt hat. Ich weiss natürlich auch nicht, ob das mit Notes5 funktioniert.
http://www-128.ibm.com/developerworks/lotus/library/notes-eclipse/

Gruß Axel
Titel: Re: Lotus Notes Agenten mit NetBeans erstellen
Beitrag von: Leon am 02.09.06 - 17:37:04
Hallo Axel und danke für Deine Antwort. Die Anleitung hatte ich schon früher im Auge, jedoch funktioniert diese nicht bei mir. Sie ist auf Notes/Domino 6+ ausgerichtet, was man spätestens bei Punkt 7 sieht. Wenn ich meine Klasse innerhalb Eclipse um AgentBase anstelle DebugAgentBase erweitere, läuft sie nicht aus meiner IDE heraus.

Wenn ich meine Klasse aus Eclipse heraus starten möchte, muss ich sie um DebugAgentBase erweitern und nicht um AgentBase.

Ich muss meine Klasse erst um AgentBase erweitern, wenn ich komplett fertig bin und das kompilierte .class File im Designer in meinen Agenten einbinden will. Wenn ich das nicht tue, legt Notes beim Starten des Agenten lediglich ein ContextDocument für diesen Agenten an. Damit der Agent tatsächlich läuft, muss ich vor dem letzten Kompiliervorgang die Klasse um AgentBase anstelle von DebugAgentBase erweitern.

Insgesamt sieht der ganze Vorgang so aus:


An dieser stelle kommen nun unter Eclipse die Fehler. Wie gesagt, das Projekt läuft komplett und fehlerfrei durch. Die Fehler kommen erst, wenn die letzte Zeile im Projekt abgearbeitet wurde. Auf die Funktion meines Projekts wirken sie sich jedoch in keinster Weise aus. Sie sind einfach nur da und stören.


Es wäre schön, wenn dieses Szenario mal jemand rekonstruieren würde bzw. sich jemand melden würde, der bereits für R5 Agenten über Eclipse geschrieben hat.

MfG

Leon
Titel: Re: Lotus Notes Agenten mit Eclipse / NetBeans erstellen
Beitrag von: Leon am 05.09.06 - 20:19:45
Inzwischen habe ich eine Vermutung, woher der Fehler kommt. Mir ist aufgefallen, dass im AgentContext Dokument seit dessen Erstellung keine Felder mehr aktuallisiert werden. So sollten eigentlich Felder wie "LastRun" nach Beendigung des Agenten aktuallisiert werden, was jedoch nicht geschieht. "LastRun" bleibt z.B. immer leer und "LastExitStatus" ist und bleibt immer auf 0. Zumindest deckt sich diese Vermutung mit Inhalt und Zeitpunkt der Fehlermeldung.

Mal angenommen, das ist der Fehler, wo kann ich ansetzen um diesen zu beheben ?

MfG

Leon