Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Blubb am 05.12.06 - 12:19:02

Titel: NotesException: Database has not been opened yet
Beitrag von: Blubb am 05.12.06 - 12:19:02
Hallo,

Ich habe eine Applikation in Java geschrieben. Auf meinem Rechner funktioniert diese auch einwandfrei, nur nicht auf einem Server. (libraries sind alle angegeben)

Der Fehler kommt dann, wenn er eben auf diese Datenbank von Notes connecten möchte.
Ich hab jetzt nun schon alle Varianten von createSession() ausprobiert, aber leider ohne Erfolg.

createSession() rufe ich über NotesFactory auf.

Verbindung sieht also folgendermaßen aus:
(alle Varianten von createSession die hier aufgelistet sind, hab ich ausprobiert)
Code

		NotesThread.sinitThread();		
		/* create a session with full access */
		//session = NotesFactory.createSessionWithFullAccess("pw");
		//session = NotesFactory.createSessionWithFullAccess();
		//session = NotesFactory.createSession((String)null, "username", "pw" );
		//session = NotesFactory.createSession((String)null, (String)null, (String)null);
		//session = NotesFactory.createSession((String)null, "", "");
		session = NotesFactory.createSession();

		String name, server;

		name = "datenbank";
		server = "server";

		Database db = session.getDatabase(server, name);
		
		return db;

Hinzuzufügen ist, dass ich mit Angabe des Benutzernamens und Passworts die Fehlermeldung "Invalid User/pw" bekomm. Benutzername und pw sollten aber stimmen.

Danke schon mal für helfende tips.
Titel: Re: NotesException: Database has not been opened yet
Beitrag von: m3 am 05.12.06 - 12:55:23
Ich würd mir das "Invalid User/pw" Problem genauer ansehen. Ohne dem wirds nix. Lies Dir mal die Designer-Hilfe zum NotesFactory Objekt genauer durch.
Titel: Re: NotesException: Database has not been opened yet
Beitrag von: flaite am 05.12.06 - 15:35:22
Du startest das Java Programm auf dem selben Rechner, auf dem der Server ist?
Das Problem ist dabei, dass du mit dem Verbindungstyp von einem Client auf den Server zugreifen mußt!!!
Falls auf dem Server gleichzeitig noch ein Client installiert ist, dann versuch mal das folgende:
Setze im PATH des Betriebssystem das Programmverzeichnis des Clients vor dem des Servers.
Falls auf dem Server kein Client installiert ist, bleibt dir nichts anderes übrig als eine Corba Verbindung mitanzubieten.
Mußt du das Programm überhaupt vom Server starten?
Hier bei mir auf der Arbeit gibts auch Leute, die "unbedingt" ohne Crosszertifizierung auf einen Server in einer VM Ware zugreifen, auf den der Client natürlich nicht crosszertifiziert ist und dessen Sicherheitseinstellungen nicht umgestellt werden müssen. Auch da soll man mit einem Java Programm zugreifen können. Das geht natürlich nicht. Beide Connection Typen (d.h. local-rfc und corba) biete ich schon an. Du verwendest rfc und das funktioniert nur, wenn das Programmverzeichnis eines Notes Clients IM PFAD DES BETRIEBSSYSTEM drin steht. NOTES CLIENT. NICHT NOTES SERVER.
Diese Java Klassen sind nur ein dünner wrapper um die Notes Remote Function Call Architektur und die funktioniert offenbar nicht mit einem Server als Client-Endpunkt.
Die Einrichtung einer Corba-Verbindung  in Notes ist nicht unbedingt einfach. Aber das ist ein anderes Thema.
Die Auswahl, ob Corba Connection oder RFC-local verwendet wird, wird übrigens einfach nur durch die (überladenen) NotesFactory.createSession...() bestimmt. Je nach Parameter gibts eine Corba oder eine local-rfc Verbindung. Steht zwar in der Doku, welche Parameter welchen Connectiontyp ergeben. Heut würd man das aber trotzdem expliziter kennzeichnen. Dieses feature der Api läßt sich nur damit erklären, dass Architekten in den 90ern von "völlig transparenten Netzwerken" träumten. So etwas gibts natürlich in der realen Welt nicht.
Titel: Re: NotesException: Database has not been opened yet
Beitrag von: flaite am 06.12.06 - 08:08:17
Habs versucht nochmal deutlicher zu machen.
Frag bitte, wenn dir was nicht klar ist.
Du bist in einer nicht offensichtlichen Falle, wenn du versuchst, local-RFC Connections von der Server-Box aus zu starten. Das ist imnsho absolut unter-dokumentiert.
Titel: Re: NotesException: Database has not been opened yet
Beitrag von: Blubb am 07.12.06 - 12:15:38
So, ich habs gelöst.  ;D

Also das Programm muss von dem Server aus laufen.
Die Klassenpfade (hatt ich schon gemacht) und den gesamten Notes-Ordner hats gebraucht.

Das ganze läuft jetzt über CORBA. Hatte das auch schon probiert, nur ist auf unserem Notes Server der Dienst für den DIIOP nicht gelaufen. Gestartet, und schon hats funktioniert.
Nun funzt das einwandfrei über createSession(url, user,pw).

Danke für die Hilfe.