Autor Thema: Warum Lotus.Domino.* Java Klassen in Agenten nutzen?  (Gelesen 3600 mal)

Offline ToniTester

  • Frischling
  • *
  • Beiträge: 22
  • Ich liebe dieses Forum!
Mal ne dumme Frage von einem Java Greenhorn...
Bin gerade stolzer Betrachter meines ersten Java "Hello World" Prompts geworden und hab dann gleich mal ein Java Agentchen gebaut, dass so ein paar Dokumente ausliest usw.
Aber ich frage mich...
a) Warum würde ich einen Agenten in Java schreiben, der mir was mit den Domino Klassen macht? Kann ich da etwas mich Java zaubern, was ich nicht mit Lotus Script kann?
b) Wie kann ich ggf. einen Java Code, der die Lotus.Domino.* Klassen nutzt in einer anderen IDE zum Laufen bringen (z.B. Netbeans oder so). Das geht doch wahrscheinlich gar nicht, weil ich keinen Notessession bzw. keinen Agentcontext habe oder? Ich frage wegen Debuggen. Das ist ja im Notes Designer mühsam, in einer anderen IDE aber wahrscheinlich komfortabler.
Grüße  ::)
Toni

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Warum Lotus.Domino.* Java Klassen in Agenten nutzen?
« Antwort #1 am: 18.08.05 - 08:18:38 »
Hallo,

es gibt unter R5 Anwendungsfälle für Agenten, die Du anders nicht vernünftig lösen kannst. Wenn Du zum Beispiel mit einem Agenten, der auf Server A läuft, auf Daten von Server B zugreifen willst, kannst Du das unter R5 nur mit JavaAgenten und Corba. (Abgesehen von der Replizierung der DB zum AppServer)

Auch so bietet Java durch seine Mächtigkeit Möglichkeiten, die Du in LotusScript einfach nicht hast.


Mit der Java-API kannst Du auch von extern auf Notes zugreifen. Um eine Session zu bekommen mußt Du auch nicht den AgentContext haben oder so. Da gibt es die Notesfactory.

Wichtig ist nur, das die Applikation zugriff auf das Notes.jar und die dll's aus dem Domino-Verzeichnis hat.

Das Debuggen von Java-Agenten aus Eclipse macht aber beispielsweise nur dann Sinn, wenn es KEIN WebQuery-Agent ist. Sonst fehlt Dir ja der AgentContext.

Wenn der Agent aber andere Aufgaben erledigen soll, kann man sich eine main-Methode einbauen, dann für das Debuggen die Session aus der Factory holen und in eclipse debuggen.

Thomas
+++To be human is more important than to be important!+++

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Warum Lotus.Domino.* Java Klassen in Agenten nutzen?
« Antwort #2 am: 18.08.05 - 11:14:17 »
Manche Leute verwenden Java in Notes offenbar erfolgreich, um bestimmte Funktionalitäten zu nutzen, die Java (oder auf Java basierende openSource/kommerzielle Frameworks/Produkte) haben. Ich hab das beispielsweise mal erfolgreich benutzt, um einen auf socketConnections basierenden Webservice-Client auf Notes5 zu schreiben. Das ging eigentlich ganz gut.
Wer jetzt meint, dass man ja in Notes6.5 Webservice Unterstützung hat... Webservice und Webservice ist leider nicht das gleiche. Bin mir nicht sicher, ob ich das Notes-Zeugs nutzen würde, oder von Hand mit Java.
Manche setzen das auch für GUI Zeugs an. Nette Grafiken, Swing GUIs, etc.

Der Nachteil von Java in Notes ist, dass eine Menge Infrastruktur zu berücksichtigen gibt. Keine Zeit das jetzt zu erklären, aber wenn man das nicht richtig macht, gibts z.B. ein Memory-Leak Problem.
Diese Sachen haben natürlich nix mit Java selbst zu tun sondern der Java Implementierung in Notes.

Imho gibts ein Eclipse Plug-in von IBM, mit dem man Java Notes Agenten remote debuggen kann, oder?
Ausserdem ist es aus meiner Sicht theoretisch möglich auch einen WebQuerySave Agenten in Eclipse zwecks Testen nachzubauen. Das sind aber Ableitungen von meinen derzeitigen Überlegungen zu Junit MockObjekten Zeug und möglicherweise falsch und verwirrend.
Es gibt auch Ansätze Notes Agenten zwischen Eclipse und Notes zu replizieren, womit man wenigstens die Programmier-Fähigkeiten von Eclipse (refactoring, Klassenbrowser, 120.000 Möglichkeiten um durch Klassen, Methoden zu navigieren, Syntaxhighlighting und und und hat). Ich muß dazu aber anmerken, dass man so viele Analyse-Möglichkeiten von Eclipse nicht hat. Z.B. Junit-Test Unterstützung und Debugging.

Ich bin aber z.B. selbst begeisterter Java Programmierer und langjähriger Notes Entwickler. Ich kann dir sagen, dass ich in Notes LotusScript präferiere, weil:
- eine Menge gotchas in der Java Implementierung in Notes
- viel vorhandener Code auf LotusScript Basis

Java gehört für mich in sowas wie JBoss oder mit Springframework auf Tomcat. Derzeit nicht in Notes. Seh das als einen gewissen Ausleger der no-intrusion-by-platform-POJO Debatte rund um EJB. Notes verlangt ähnlich wie prä-EJB3.0 EJB-Container einfach zu viel von den Java Klassen, so dass das programmieren nicht mehr effizient ist. Es gibt da aber inzwischen bessere Lösungen, aber leider nicht in Notes.
 
Ausser du hast eine Spezialaufgabe, die sich einfach mit Java in Notes lösen lässt.

Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Warum Lotus.Domino.* Java Klassen in Agenten nutzen?
« Antwort #3 am: 18.08.05 - 11:47:32 »
Hi Axel,

dass es für R6 Plugins für eclipse gibt, mit denen man Java-Agenten remote-Debuggen kann, hab ich bis jetzt nicht gewußt.

Dass es für R7 so was geben soll hab ich aber auch schon gehört. Aber R6????
Hast Du da irgendeine Referenz dazu (Download)?

Thomas

+++To be human is more important than to be important!+++

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Warum Lotus.Domino.* Java Klassen in Agenten nutzen?
« Antwort #4 am: 18.08.05 - 12:21:13 »
Ich meine hier wurde da mal was zu gepostet. Ich habs allerdings nicht ausprobiert, weil ich persönlich seit einiger Zeit Notes und Java sehr getrennt betreibe. Hab momentan keine Zeit selbst zu suchen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline qojote

  • Aktives Mitglied
  • ***
  • Beiträge: 229
  • I love YaBB 1G - SP1!
Re: Warum Lotus.Domino.* Java Klassen in Agenten nutzen?
« Antwort #5 am: 18.08.05 - 13:15:38 »
Hi,

ich hatte das gepostet.
Handelt sich aber nicht um ein Plugin sondern du kannst einfach den Remote debugger von Eclipse benutzen.
Hatte ich aus einem Artikel von IBM

Ich muß mal schauen wo ich den Artikel habe wenn ich ihn finde kann ich den ja nochmal posten

Gruß
Qojote

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Warum Lotus.Domino.* Java Klassen in Agenten nutzen?
« Antwort #6 am: 18.08.05 - 15:06:05 »
Das würde mich wirklich mal interessieren.
Also wenn Du den Artikel mal finden solltest...

Wäre ne interessante Sache

Thomas
+++To be human is more important than to be important!+++

Offline Mark³

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
  • Nordisch by Nature
    • Das Leben aus der Sicht eines Menschen
sagt Mark.



slowfood.de

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz