Autor Thema: Java mit Corba-Zugriff  (Gelesen 3037 mal)

Offline magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Java mit Corba-Zugriff
« am: 16.12.08 - 08:22:24 »
Hi,

ich habe ein "ganz normales" Javaprogramm (keinen Agent). Hieraus möchte ich ein Item an ein Notes-Maildokumente anhängen und füllen.
Dazu müsste ich dann wohl mittels CORBA eine Session zu Notes aufbauen und das Dokument manipulieren?!
Außerdem muß der DIIOP-Task auf dem Server laufen und ich benötige das NSCO.jar?!

1. Ich finde das NSCO.jar File nicht - wo liegt das für gewöhnlich? --> EDIT: 1. ist geklärt.
2. Muß das NSCO.jar in den Path oder Classpath rein?
3. Wie starte ich den DIIOP-Task - habe in der Hilfe nichts passendes gefunden!?

Danke und Gruß

PS: Dieser Weg, aus Java per CORBA auf Notes zugreifen, gefällt mir jedoch nicht sonderlich, da ich gelesen habe, das dies relativ inperformant sein soll?!
« Letzte Änderung: 16.12.08 - 08:29:53 von magic_halli »
Lotus Notes 8.0.2

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 mit Corba-Zugriff
« Antwort #1 am: 16.12.08 - 08:43:27 »
zu 2. in den Classpath.
zu 3. Load DIIOP

DIIOP ist laut meinen Tests ca. 2-3 mal langsamer als Zugriff über NRPC und deshalb verwende ich es nicht. Für kleine Sachen würde ich aber sowieso den Umweg über Webservices gehen. Also auf dem Dominoserver ein eigenes kleines API mit der Webserviceproviderfunktion coden und auf dem Clientprogramm dann den Webserviceconsumer programmieren. Das sollte am stabilsten und robustesten funktionieren.

Grüße

Ralf
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 magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Re: Java mit Corba-Zugriff
« Antwort #2 am: 16.12.08 - 08:49:58 »
Danke... ich überdenke mir, glaub ich, nochmal den Ansatz über Corba.  ;)

Gruß
Lotus Notes 8.0.2

Offline magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Re: Java mit Corba-Zugriff
« Antwort #3 am: 16.12.08 - 09:24:01 »
Mh, ich glaube leider, irgendwie scheine ich um CORBA nicht herum zu kommen?!

Szenario:
Per Button wird in Notes ein LS-Agent gestartet. Dieser ermittelt bestimmte Dokumente-Values und ruft eine Java-Bibliothek auf (kein Java-Agent!; eigenständiges Java-Programm). An das Java-Programm werden außerdem noch beim Aufruf, mittels LS2J, die vorher ermittelten Dokument-Values übergeben.
Nun führt mein Java-Programm seine Operationen aus und ich erhalte u.a. eine "PostNr" während der Abarbeitung.
Diese "PostNr" will ich nun wieder an das Notes-Dokument als neues Item anhängen, von welchem ich ursprünglich per Buttonklick die Abarbeitungskette (Button-->LS-Agent-->LS2J-->Aufruf Java-Programm) gestartet habe!

Ich sehe irgendwie keine andere Möglichkeit, als über Corba meine "PostNr" (im Java-Programm berechnet) an das Dokument zurückzuspeichern!?!?   :-:

Oder würdet ihr für mein Szenario einen anderen/performanteren Weg einschlagen?

Danke.


PS: Ich habe schon überlegt/versucht, im LS-Agent der mein JavaProgramm startet, nach dem Aufruf des Java-Programms eine Getter-Methode (getPostNr()) aus dem Java-Programm separat nochmal aufzurufen. Dort müsste mir eigentlich die PostNr ausgelesen werden. Doch der LS-Agent arbeitet ja seinen Code nach dem Aufruf des Java-Programms stur weiter ab (verständlicherweise). Somit läuft mein Java-Programm noch und berechnet mir ja erst die PostNr, währen der LS-Agent bereits die getPostNr()-Methode abruft und dort natürlich null erhält. Also fällt dieser Weg schonmal aus?!  :(
Lotus Notes 8.0.2

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 mit Corba-Zugriff
« Antwort #4 am: 16.12.08 - 10:11:14 »
Irgendetwas stimmt hier nicht Wie kannst du an ein externes Programm mit LS2j Daten übergeben. Das ist meiner Meinung nach nicht möglich. LS2j kann nur von ihm selbst instantierte Objekte verwenden die dann nicht in einer externen JVM sondern in der Notes JVM laufen. Aber soweit ich weiß verwendest du doch Notes 8. Also warum das ganze nicht mit Notes 8 Technologien lösen. Da geht das alles doch wesentlich eleganter.

Grüße

Ralf
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 magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Re: Java mit Corba-Zugriff
« Antwort #5 am: 16.12.08 - 10:18:41 »
Zitat
Irgendetwas stimmt hier nicht Wie kannst du an ein externes Programm mit LS2j Daten übergeben. Das ist meiner Meinung nach nicht möglich. LS2j kann nur von ihm selbst instantierte Objekte verwenden die dann nicht in einer externen JVM sondern in der Notes JVM laufen.
Äh, ich habe mich vielleicht undeutlich ausgedrückt?!
Das Java-Programm ist zwar in Eclipse entwickelt... wird dann aber als JAR gepackt und in eine Java-Bibliothek (unter Gemeinsamer Code/Scriptbibliotheken) verpackt. Diese kann ich dann auf dem Notes-Weg mittels eines LS-Agents und Datenübergabe per LS2J ausführen. Somit läuft das alles auch in der Notes JVM.
So hatte ich das gemeint - das klappt auch wunderbar. 
Lotus Notes 8.0.2

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 mit Corba-Zugriff
« Antwort #6 am: 16.12.08 - 10:26:22 »
Wenn du dann aber mit ls2j eine Methode aufrufst, die nicht einen eigenen Thread gerneriert, dann wartet der LS agent bis die Methode fertig ist. Folglich kannst du die Werte dann auch mit Get auslesen. Dafür brauchst du kein Corba. Laut Auskunft von Lotus Support vor ein paar jahren soll und darf man keine Notes klassen in Java Klassen die über LS2j aufgerufen werden verwenden.

Grüße

Ralf
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 magic_halli

  • Senior Mitglied
  • ****
  • Beiträge: 348
  • Geschlecht: Männlich
Re: Java mit Corba-Zugriff
« Antwort #7 am: 16.12.08 - 10:36:38 »
Wenn du dann aber mit ls2j eine Methode aufrufst, die nicht einen eigenen Thread gerneriert, dann wartet der LS agent bis die Methode fertig ist. Folglich kannst du die Werte dann auch mit Get auslesen. Dafür brauchst du kein Corba. Laut Auskunft von Lotus Support vor ein paar jahren soll und darf man keine Notes klassen in Java Klassen die über LS2j aufgerufen werden verwenden.
Ok...
1. Ich rufe einen Konstruktor mit LS2J auf - dieser generiert keinen eigenen Thread! Überhaupt wird keine eigener Thread generiert! Also das ist dann somit schonmal korrekt und erledigt.
2. Von der Verwendung von Corba bzw. Notes-Klassen in meinem Java bin ich (zum Glück) wieder abgekommen.
3. Irgendwie lieferte mir die Get-Methode im anschließenden Aufruf aus dem LS-Agent nichts zurück.
Ich baue noch fix ne Kleinigkeit um und versuche es nachher nochmal. Hab vielleicht was falsch gemacht?!
Ich geb nochmal ein Feedback...

Danke für die Auskünfte... haben meinen Weg eigentlich bestätigt.  :D

Gruß Rico.
Lotus Notes 8.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz