Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Java Agent starten
buzi:
Hallo zusammen,
ich versuche einen bestehenden Java Agenten im Domino Designer für eine neue Datenbank anzupassen. Habe schon viel mit Agenten in Lotus Script gearbeitet und bin ziemlich fit in Java - aber die Verknüpfung von Lotus und Java ist für mich was neues.
Probleme, die ich habe:
- Wie kann man einen Java Agent debuggen (meine Recherchen ergaben nichts nützliches)?
- Wo landen die System.out.println-Anweisungen (würde fürs Erste auch helfen beim debuggen)?
- Ich habe eine Zeile JoptionPane.showMessageDialog()... eingebaut, aber die kommt auch nicht an...
Um erst mal zu verstehen, wie das bei Java Agenten abläuft, habe ich ein HelloWorld-Beispiel versucht. Wenn ich diesen kompilieren will bekomme ich folgenden Fehler:
error: package lotus.notes does not exist
Habe der PATH-Variablen bereits folgendes hinzugefügt:
C:\Program Files (x86)\IBM\Lotus\Notes\jvm\lib\ext\Notes.jar;
--- Code: ---import lotus.notes.*;
public class JavaAgent extends lotus.notes.AgentBase
{
public void NotesMain()
{
try
{
Session s = this.getSession();
AgentContext ctx = s.getAgentContext();
Name n = s.createName(ctx.getEffectiveUserName());
String st = n.getCommon();
System.out.println("Hello " + st + "!");
}
catch (Exception e)
{ e.printStackTrace(); }
}
}
--- Ende Code ---
Aufruf:
javac JavaAgent. java
umi:
Moin
- System.out's landen in der Java Debug Console . Tools -> Show Java Debug Console falls der Agent im Client gestartet wird.
von Wo ist denn das Sample und Wo versucht du das zu starten?
Notes Java Agenten sollten eigentlich innerhalb der NSF sein und vom Notes Client aus gestartet werden. Bzw. wenn Du da einen neuen Java Agent machst
erhälst Du schon das Grundgerüst. (import lotus.domino.*) Dann brauchts auch keine PATH geschichten.
buzi:
Danke Umi,
späte Reaktion weil Kinder krank = Arbeitspause...
So back to work!
Also, die Fehlermeldung kam weil ich in meiner Verzweiflung versucht habe, den Code in Eclipse zum Laufen zu bringen. Jetzt wo ich weiß wo die Consolen-Ausgaben zu finden sind, werde ich natürlich brav im Notes-Designer bleiben.
Also, Agent ist jetzt im Designer, Aufruf über eine Aktion. Der Hello-Agent läuft! Danke.
Trotzdem bleibt die Frage, wie kann ich odentlich debuggen? Also ohne Messageboxen oder System-out's? Wie kann ich den Eclipse-Debugger denn verknüpfen? Geht das gut? Bei IBM steht "Vorsicht Java debugging is insecure and degrades performance. Disable Java debugging when it is not needed." ... klingt nicht gerade nach Freude!?!
buzi:
Noch eine Frage zur korrekten Initialisierung einer Datenbank.
Der Aufruf
--- Code: --- Session session = getSession();
String server = session.getCurrentDatabase().getServer();
Database sourceDatabaseAD = session.getDatabase(server, "\\Version4\\datenbankname.nsf");
DocumentCollection selectedDocuments = sourceDatabaseAD.getAllDocuments();
--- Ende Code ---
Führt in Zeile 4 zu Fehler:
NotesException: Database CN=xxx/O=ee/C=de!!\Version4\datenbankname.nsf has not been opened yet
Wo kommen die !! im Namen her?
Tode:
Erstmal: Server!!Datenbank ist die normale Schreibweise, wenn man beide zusammen speichert / verwendet. Das ist Standard Notes.
Aber wie kommst Du auf die Idee, den Pfad als "\\Version4\\datenbankname.nsf" anzugeben? Das ist NICHT Formelsprache, und das erste Zeichen muss eigentlich NIE ein Backslash sein:
--- Code: ---Database sourceDatabaseAD = session.getDatabase(server, "Version4\datenbankname.nsf");
--- Ende Code ---
sollte wunderbar funktionieren.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln