AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
13.08.20 - 12:49:36
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  Java und .NET mit Notes/Domino (Moderatoren: Axel, m3)
| | |-+  Java Agent starten
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Java Agent starten  (Gelesen 12128 mal)
buzi
Aktives Mitglied
***
Offline Offline

Beiträge: 171



« 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 » Gespeichert
umi
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2062


one notes to rule'em all, one notes to find'em....


WWW
« Antworten #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.
Gespeichert

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>
buzi
Aktives Mitglied
***
Offline Offline

Beiträge: 171



« Antworten #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!?!
Gespeichert
buzi
Aktives Mitglied
***
Offline Offline

Beiträge: 171



« Antworten #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 » Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 6468


Geht nicht, gibt's (fast) nicht... *g*


WWW
« Antworten #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.
Gespeichert

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...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Sven Hasselbach
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 316



WWW
« Antworten #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 » Gespeichert

buzi
Aktives Mitglied
***
Offline Offline

Beiträge: 171



« Antworten #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?
Gespeichert
umi
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2062


one notes to rule'em all, one notes to find'em....


WWW
« Antworten #7 am: 03.12.15 - 10:22:08 »

Moin

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

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>
Ralf_M_Petter
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1879


Jeder ist seines eigenen Glückes Schmied


WWW
« Antworten #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/
Gespeichert

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.
buzi
Aktives Mitglied
***
Offline Offline

Beiträge: 171



« Antworten #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?
Gespeichert
Fabi94
Frischling
*
Offline Offline

Geschlecht: Männlich
Beiträge: 9



« Antworten #10 am: 26.02.16 - 08:05:12 »

Ist dein problem jetzt gelöst? Cheesy
Gespeichert

Einen schönnen Tag euch allen!

MfG, Fabi94

Happy Coding
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: