Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Error cleaning up agent threads und WeakReference...

<< < (16/19) > >>

flaite:
Ich hoffe das ist klar.
Der Teil ist btw. ein Beispiel für definitiv übles Errorhandling von mir:

--- Code: ---org.w3c.dom.Document doc = db.parse(is);

return parseTodaysExchangeRateBeansFromXml (doc);

} catch (Exception e) {
String errMsg = "Die URL ist nicht erreichbar:" + urlEcbDaily;

throw new WebRetrievalException(errMsg, e);

}

--- Ende Code ---

Mark³:
ich habe nun ein Servlet auf Tomcat laufen, welches meine gewünschten Befehle in Openview ausführt.
Um auf Clientseite Java loszuwerden nutze ich nun Microsoft ActiveX (http://atnotes.de/index.php?topic=28468.msg180071#msg180071. Java und Notes-Client ist eben noch nicht so stabil.

flaite:
Ist es doch. Nur eben ein bischen kompliziert. Ich werde mal ein Beispiel posten.
Allerdings für Notes 7.0.
Wir haben allerdings auch eine Anwendung laufen, die mit Notes 5.0 per http mit einem Tomcat Server per xml kommuniziert. Nur mit den Sun java.net Klassen von java1.1 und den xml libraries von notes auf java1.1. Und das macht keinen Spaß.

flaite:
Ich hab jetzt mal eine SocketServer Umgebung durchgecodet.
Client von CMD-Console und Server von Eclipse starten macht keine Probleme. Dh. läuft.

Morgen packe ich den Client in einen Notes Agenten.

Falls sich jemand dafür interessiert:
1. Das Error-Handling ist sicher nicht ausgereift.
2. Das Command Framework ist schlecht. Ich wollte es jetzt nicht direkt neu programmieren. Mach das irgendwann noch besser.
3. Was tun?
a) das attachte File in clientObjects.jar umbenennen und in ein Verzeichnis tun (z.B. C:\temp)
b) Die einzelnen Klassen des jars in ein Eclipse Projekt importieren.
c) In Eclipse die Klasse de.aja.server.SocketServer starten. (in clientObjects.jar sind sowohl die Client als auch die Server-Klassen)
d) in Windows (z.B.) clientObjects.jar von der Kommandozeile starten:
(man hat dann quasi 2 Java Programme 1 Client und 1 Server)

--- Code: ---C:\TEMP>java -jar clientObjects.jar
cba

C:\TEMP>java -jar clientObjects.jar
cba

C:\TEMP>java -jar clientObjects.jar
cba

--- Ende Code ---
Man kann es mehrmals aufrufen.
Im Sourcecode steht, was passiert.

1. Der Client erzeugt ein Objekt.
2. Der Client schickt das Objekt als serialisierten Stream an den Server.
3. Der Server verarbeitet das Objekt weiter. (ruft Methode excecute auf).
4. Der Server sendet ein Antwort-Objekt an den Client zurück.
5. Der Client ruft eine Methode des empfangenen Objekts auf.

Wie gesagt: Marc-> Auf die Art kannst du (oder jemand anders) Objekte in Notes erzeugen, an den hier enthaltenen SocketServer schicken. Der SocketServer kann dann irgendwelche Klassen aufrufen (z.B. dieses openView Zeugs) und  ein Response Objekt zurücksenden
... und das kann man in Notes wieder empfangen.

DAS IST ZWAR ALLES EIN BISCHEN SCHLUDRIG RUNTERGESCHRIEBEN.
ABER: Wär schön wenn sich jemand für interessieren würde. Ich hab die Idee verschiedene Remote-Aufrufe aus Notes in Java sauber durchzuprogrammieren und in Show-Code-on Thursday (oder wie immer diese Rocky Oliver Initiative heisst) publizieren.

Mark³:
da sind ein paar interessante Details drin, z.B. die Weitergabe von Objekten...

Ich muss erst mal mein konkretes Problem lösen bevor ich mir das genauer ansehen kann. Die Problematik bei mir sind die Openview-Zugriffe, da ich die Connections nicht richtig verwalten kann. Die API hat zwar einen connect-Befehl, aber keine Prüfung, ob die aktuelle Session noch gültig ist. Nach 30 min gibts einen Timeout, danach kann ich die Session nicht mehr nutzen. Nun muss ich wohl einen Timerthread einbauen, der alle 20min einen Dummyzugriff macht um den Timeout zu umgehen. Alles irgendwie unelegant, aber die API liefert einfach nix vernünftiges.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln