Autor Thema: Java Agent starten  (Gelesen 16369 mal)

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Java Agent starten
« am: 25.11.15 - 12:27:59 »
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(); }
}
}

Aufruf:

javac JavaAgent. java
« Letzte Änderung: 25.11.15 - 12:31:34 von buzi »

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Java Agent starten
« Antwort #1 am: 25.11.15 - 13:15:05 »
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.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Java Agent starten
« Antwort #2 am: 02.12.15 - 10:36:39 »
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!?!

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Java Agent starten
« Antwort #3 am: 02.12.15 - 12:03:51 »
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();

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?
« Letzte Änderung: 02.12.15 - 12:23:39 von buzi »

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Java Agent starten
« Antwort #4 am: 02.12.15 - 13:39:20 »
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");
sollte wunderbar funktionieren.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: Java Agent starten
« Antwort #5 am: 02.12.15 - 13:56:08 »
Aber wie kommst Du auf die Idee, den Pfad als "\\Version4\\datenbankname.nsf" anzugeben? Das ist NICHT Formelsprache,
Code
Database sourceDatabaseAD = session.getDatabase(server, "Version4\datenbankname.nsf");
sollte wunderbar funktionieren.
In Java muss ein Backslash escaped werden.

EDIT:
@buzi:
Mach doch mal ein
Code
sourceDatabaseAD.open()

Zum Thema debuggen / entwickeln in Notes:
Du kannst im Designer entwickeln, was extrem grausam ist. Oder du nutzt Eclipse mit EclipseAgentBase.
« Letzte Änderung: 02.12.15 - 14:00:25 von Sven Hasselbach »

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Java Agent starten
« Antwort #6 am: 02.12.15 - 20:07:24 »
Danke für die Hinweise! Mit open habe ich es auch schon versucht, da lief ich dann in den Fehler "Database open failed".... Kann es an Sicherheits-Einstellungen der gewählten Datenbank liegen?

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Java Agent starten
« Antwort #7 am: 03.12.15 - 10:22:08 »
Moin

hat den dein User die rechte die DB zu öffnen?
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Java Agent starten
« Antwort #8 am: 14.12.15 - 13:26:35 »
Leider den Thread erst jetzt gesehen. Das debuggen von Java Agenten ist eigentlich ziemlich easy. Man kann es im Designer unter Werkzeuge Vorgaben für Java Debugger für den jeweiligen Kontext aktiveren und dann kann man sich nachdem der Agent gestartet wird. mit dem Eclipse Remote Debugger verbinden. ist natürlich auch aus dem Designer möglich aber bei manchen Sachen etwas unpraktisch.

Für Details siehe http://www.bizzybee.be/2013/01/11/debugging-java-code-in-domino-designer-8-5-or-9/
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline buzi

  • Aktives Mitglied
  • ***
  • Beiträge: 171
Re: Java Agent starten
« Antwort #9 am: 13.01.16 - 12:03:30 »
Hey Ralf_M_Petter,

melde mich spät zurück aus der Weihnachtsferienpause und arbeite die liegen gebliebenen Dinge ab. Danke für den Link "Debugging Java code in Domino Designer 8.5 or 9". Es funktioniert einwandfrei wie beschrieben und hilft mir sehr weiter!

An die Admins hier: Wäre das nicht eine Beschreibung für die Rubrik "Java und .NET mit Notes/Domino" oder so?

Offline Fabi94

  • Frischling
  • *
  • Beiträge: 9
  • Geschlecht: Männlich
Re: Java Agent starten
« Antwort #10 am: 26.02.16 - 08:05:12 »
Ist dein problem jetzt gelöst? :D
Einen schönnen Tag euch allen!

MfG, Fabi94

Happy Coding

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz