Grundsätzlich wäre es von meinem Verständnis besser, wenn die Java Anwendung sich die Session von der Notes Datenbank pullen würde.
Du kannst ja von einer beliebigen Java Anwendung Verbindung mit Domino aufnehmen.
Die entsprechende Verbindungsmethode sieht bei mir so aus:
Von nSession die Database zu bekommen ist nicht so schwierig.
Ich mach das in der referenzierten Methode doSpecificAction(Session nSession);
/**
*
* @return for reporting purposes.
*/
public ReportUser doAction() {
try {
tLocal = new ThreadLocal();
tLocal.set(new ReportUser());
/* if (getProp("useIIOP").toString().equals("true")) {
isCorba = true;
} else {
isCorba = false;
}
*/
isCorba = false
if (isCorba) {
nSession = NotesFactory.createSession(server + ":" + iiopPort);
} else {
NotesThread.sinitThread();
nSession = NotesFactory.createSession();
}
ReportUser reportUser = doSpecificAction(nSession);
nSession.recycle();
if (!isCorba) {
NotesThread.stermThread();
}
return reportUser;
} catch (Throwable t) {
t.printStackTrace();
if (nSession != null)
try {
nSession.recycle();
} catch (NotesException e) {
// catch not needed here!
}
nSession = null;
throw new RuntimeException(t);
// TODO
// return new StringBuffer().append("an error has occured");
}
}
Das ThreadLocal Gehampel ist zugegebenermassen ziemlich posermässig. Du brauchst das nicht für standalone Anwendungen. Für Serveranwendungen (du willst aus JBoss oder Tomcat auf Domino zugreifen) ist das aber ein guter Ansatz.
Um nicht so oft nach dem Passwort gefragt zu werden hilft (fürs erste) das Häckchen
"Don't prompt for a password from other Notes based programs" -> Es kommt keine Abfrage, wenn sich der Anwender schon in sein lokales Notes eingelogt hat, sicherheitsproblematisch ist es also aus meiner Sicht nicht.
aus: Notes Menü: File\Security\User-Security 1. Tab: Security Basics.