Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Java/Lotus Script Integration
Gandhi:
Hi,
für eine Netzwerkgeschichte benötige ich Java Funktionalität im Postopen der Datenbank.
Genauer geht es darum, einen Hostnamen in IP zu verwandeln, noch dessen Domänen und Subdomänen auszulesen um ihn schlussendlich anzupingen (den Host).
Mit einem Agent habe ich das schon mal ausprobiert - aufgrund der Tatsache mit den Memory Leaks und dass das Ding auf einem produktiven Server laufen soll - scheue ich mich ein wenig davor das auf diese Weise zu tun - zumal ich die Parameterübergabe hin und zurück noch nicht geklärt habe.
Nun meine ich mich zu erinnern, dass man Java Klassen auch aus Lotus Script heraus nutzen kann (ich setze Domino 6.5.x ein), finde hierzu aber in der Notes Hilfe und hier im Forum leider nichts dazu, so dass ich an meinem Gedächtnis zweifle.
Ein ganz dummdreister Versuch eine Java Klasse, die in einem ScriptLibrary ist, aufzurufen ist leider gescheitert (findet die Klasse nicht), daher nun meine Bitte um Hilfe: Existiert die Möglichkeit Java Code aus Lotus Script aufzurufen - und wenn ja wie (bzw. wo stehts) UND: Falls das nicht der Fall sein sollte: Wie kann ich einem JavaAgenten Parameter übergeben und wie bekomme ich die gewünschten Daten zurück?
flaite:
Hi.
Bei Agenten sind Memory Leaks in den Griff zu bekommen. Das wirkliche Problem scheint LS2Java Bridge zu sein. Für die Parameterübergabe. Du startest den Agenten aus dem Postopen und solltest dann auf alle Felder des Dokuments zugreifen können (via AgentContext.DocumentContext).
Du meinst LS2Java. Frag Ben Poole. Der behauptet das geht nicht vernünftig. Theoretisch kann man Memory Leaks durch eine gute Testumgebung aufspüren können. D.h. nicht unbedingt lösen, sondern verifizieren, ob sie da sind. Bin zu Zusammenarbeit bereit, hab aber keine Ahnung, wie man das rauskommen für eine unter Domino laufende VM machen kann und ich hab eine Menge Arbeit.
Die Daten solltest du ins Dokument schreiben können? (wieder AgentContext.DocumentContext)
Du kannst dein Anping-Requirement btw. auch mit MS-Com Sachen lösen. Java ist aber vermutlich einfacher. Wir transportieren in einer Notes-Anwendung via Java SocketConnection MegaBytes von Dokumenten auf einen Archivierungsserver. Das sollte also gehen.
Gandhi:
Vielen Dank für Deine Antwort.
Ja, mit COM würde es auch gehen - wenn die Server nicht teilweise auf Solaris laufen würden. Ausserdem ist das in der Tat mit Solaris einfacher. Vom Client kann ich keine IP erhalten, da die Clients per VPN zugreifen und somit auf dem Server nicht mit der IP auf dem Client zugreifen.
Das mit dem Agenten werde ich nächste Woche ausprobieren.
Viele Grüsse aus der Schweiz und ein schönes Wochenende
Marco
Ralf_M_Petter:
Hier mal etwas ähnliches mit der LS2Java Bridge. Seit 1 1/2 Jahren im Produktiv Einsatz bis jetzt keine Probleme. Voraussetzung dass LS2Java auch auf Solaris unterstützt ist. Weiß ich nicht, habe kein Solaris.
Lotus Script Teil
--- Code: ---Uselsx "*javacon"
Function isOnline() As Boolean
If Left(ses.GetEnvironmentString("Location",True),4)<>"Inse" Then
Dim SessionJava As JavaSession
Dim ClassJava As JavaClass
Dim ObjectJava As JavaObject
Set SessionJava = New JavaSession ()
Set ClassJava = SessionJava.GetClass("CheckSocket")
Set ObjectJava = ClassJava.CreateObject()
Print "Prüfe Verbindung zum Domino Server. Bitte warten"
isOnline=ObjectJava.isOnline()
Print""
Exit Function
End If
isOnline=True
End Function
--- Ende Code ---
Java Teil
--- Code: ---
import java.net.*;
public class CheckSocket {
public CheckSocket(){
}
public boolean isOnline(){
try{
Socket sock=new Socket(InetAddress.getByName("172.16.2.3"),1352);
sock.close();
return true;
}
catch (Exception e){
return false;
}
}
}
--- Ende Code ---
Eventuell hilfts.
Grüße
Ralf
Gandhi:
Vielen Dank für die Hilfe,
habe mich für den Agenten entschieden, weil LS2J tatsächlich eher mässige Kritiken im Internet bekommt.
Das funktioniert ausgesprochen gut - in Zukunft wird so eine Lösung in der Tat für mich eine gangbare Alternative darstellen.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln