Autor Thema: Der Import lotus kann nicht aufgelöst werden  (Gelesen 6373 mal)

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Der Import lotus kann nicht aufgelöst werden
« am: 06.09.06 - 08:53:26 »
Hallo,

ich bin mit meiner kompletten Eclipse-Umgebung auf einen neuen Rechner umgezogen und dabei hatte ich ein kleines Projekt bei dem ich mit Java den Notes-Server angesprochen habe, das hat auch gut funktioniert, nur nach dem Umzug auf den neuen Rechner und längerer Nichtbenutzung bekomme ich jetzt bei diesem Projekt den Fehler "Der import lotus kann nicht aufgelöst werden!"

Was muß ich tun?

Windows XP, Notes Client 5.0.8

Vielen Dank und Grüsse

Chris

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #1 am: 06.09.06 - 11:33:01 »
Hallo,

nach längerer Suche habe ich festgestellt, dass der classpath mit der notes.jar nicht richtig verknüpft war.

Das habe ich geändert, allerdings kriege ich einen Fatal exception occured, wenn ich das Programm in Eclipse

Konsole:

starte: java.lang.UnsatisfiedLinkError: no nlsxbe in java.library.path
   at java.lang.ClassLoader.loadLibrary(Unknown Source)
   at java.lang.Runtime.loadLibrary0(Unknown Source)
   at java.lang.System.loadLibrary(Unknown Source)
   at lotus.domino.NotesThread.load(NotesThread.java:281)
   at lotus.domino.NotesThread.checkLoaded(NotesThread.java:301)
   at lotus.domino.NotesThread.sinitThread(NotesThread.java:171)
   at test.TEST1.main(TEST1.java:40)
Exception in thread "main"

Was hat das zu bedeuten?


Viele Grüsse

Chris

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #2 am: 06.09.06 - 11:51:38 »
Hallo Chriss,

hast Du den Programm-Pfad des Domino-Servers oder des Clients als Path-Variable bekannt gemacht?
Die Meldung sagt einfach, dass Du das Notes.jar importierst und beim Linken sucht dat dingen die entsprechende Bibliothek (nlsxbe), und kann die nich finden.

Wir reden doch von Windows, oder?
Und Domino6 oder 7?

Thomas

Oh, wer lesen kann is klar im Vorteil.....
Also wenn das Programm lokal ausgeführt wird musst Du das Programmverzeichnis des Clients in der Path-Variablen bekanntmachen.
« Letzte Änderung: 06.09.06 - 12:07:56 von Thomator »
+++To be human is more important than to be important!+++

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #3 am: 06.09.06 - 12:08:22 »
Hallo Thomas,

ich habe den classpath auf die notes.jar des Clients unter C:\.... bekannt gemacht!

Wir reden von Domino Server 6 auf Windows!

Wie muß ich jetzt weitermachen?

Chris

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #4 am: 06.09.06 - 12:12:51 »
Hi,

unter Windows die Systemvariablen editieren, dort die Variable 'Path' raussuchen.
An diese Variable hängst Du getrennt durch ein Semmelkorn den Programmpfad des Notes-Clients an.

Danach evtl. sicherheitshalber noch mal Eclipse neu starten und dann sollte das funzen.

Thomas
+++To be human is more important than to be important!+++

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #5 am: 06.09.06 - 12:26:11 »
Hallo Thomas,

sieht schon besser aus!
Im Debug-Modus komme ich jetzt weiter, allerdings fehlt immer noch etwas!

Die Klasse Notesfactory wird auch nicht gefunden!?

Nur damit wir uns nicht mißverstehen:
Ich will mit einem Stückchen Javacode/Ecplise auf unseren Notesserver (Windows Domino6) im Netzwerk zu greifen!

Chris

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #6 am: 06.09.06 - 12:31:36 »
Hi Chris,

schon klar. Dazu ist es notwendig, dass das Programm, das in Eclipse ja lokal ausgeführt wird, das Notes.jar einbindet. Die native Schnittstelle wiederum benutzt die dll 'nlsxbe'. Heißt, die Methoden in der dll, die in C programmiert und als Maschinencode vorliegen, werden nativ von den Java-Functions benutzt.
Also muss die JVM auch den Pfad zur entsprechenden dll finden, um diese zur Laufzeit 'linken' zu können.

Wegen dem Fehler: Kannst Du mal den Quellcode posten? Da kann ich ma draufschauen...

Welches Notes-Jar benutzt Du?

Thomas
+++To be human is more important than to be important!+++

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #7 am: 06.09.06 - 13:12:01 »
Hallo Thomas,

Auzug Coding:

package test;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.net.*;

import lotus.domino.*;
//Anweisung um den Java Compiler mitzuteilen, wo er die Notesklassen findet.
/**
*
* @author petter_r
*/
public class TEST1 {

/** Creates a new instance of testprogramm In unserem Beispiel brauchen wir keine Instance */
//public TEST1() {
//}
/**
* @param args the command line arguments
*/

public static void main(String[] args) {
NotesThread.sinitThread(); //Beim lokalen Zugriff nicht DIIOP muss der Thread erst für Domino initialisiert werden.
Session ses=null; //Sessionvariable definieren.
try { //Da Notes Klassen Exceptions werfen können sollte man diese auch abfangen.

System.out.println(ses);

'bis hier gibt es kein Problem, NotesFactory.createSession(); lokale Variable nicht verfügbar

ses = NotesFactory.createSession(); //Erzeugen eines Sessionobjekts
Database db=ses.getDatabase("UnserSERVER","mail/xxxxxx.nsf"); // Öffnen einer Datenbank bitte das anpassen an euer Umfeld z. B. Maildatenbank.
System.out.println("Datenbank hat folgenden Dateiname:"+db.getFileName());
System.out.println("Datenbank wurde zuletzt volltextindiziert am "+db.getLastFTIndexed().toString());
System.out.println("Datenbankgrösse "+db.getSize());
System.out.println("Host name and Adresse: "+InetAddress.getLocalHost());

..........

Wo soll ich nach der notes.jar Version suchen?

Vg

Chris


Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #8 am: 06.09.06 - 13:16:32 »
Die entsprechenden Einstellungen können wirklich tricky sein. V.a. weil die Meldungen nicht gerade besonders aufschlussreich sind.

Hier ein vernünftiges Vorgehen:
1. Finde heraus, ob du local oder über die corba infrastruktur auf Notes zugreifst. Irgendwo wirst du die NotesSession (lotus.domino.Session) mit den createSession()-factory Methoden von NotesFactory erzeugen. Je nach dem welche der verschienden überladene createSession() Methode (unterschiedliche Parameter) aufgerufen wird, wird eine corba oder eine local session erzeugt. Man kann mit local sessions auch auf Server zugreifen. Der Bezeichner local bezieht sich rein auf - hm.hm.hm. sagen wir - endpunkt der Verbindung des Clients -.
IN DEINEM FALL IST ES LOCAL
2. Ich gehe jetzt davon aus, du hast eine local Verbindung.
3. Schaue dir die PATH Umgebungsvariable an. Hier muss der Ordner des Notes-Programmsverzeichnis des CLIENTS drinstehen. Und zwar DEINE AKTUELLE VERSION. ALS ERSTES. Eine Menge Spezialisten haben vor dem aktuellen Eintrag, irgendwelche historischen, aber noch auf der Festplatte vorhandene Versionen drinstehen. Beliebt sind auch Server vor dem Client oder ähnlicher offensichtlicher Unsinn.
Also nochmal. Du hast deinen Notes CLIENT in C:\programme\lotus\notes installiert.
Schreib das möglichst weit vorne in den PATH deines OS.
Du bekommst übrigens von der Java-VM sehr verbose Meldungen, ob das alles stimmt, wenn du folgenden Java-VM Parameter setzt. -> -verbose:jni . In Eclipse geht das in diesem Dialog der kommt, wenn man auf run oder debug mit 3 Punkten drückt.
4. Notwendig für lokal ist auch diese Konstruktion:
Code
NotesThread.sinitThread();
			nSession = NotesFactory.createSession();
			NotesThread.stermThread();
also NotesThread.sinitThread() und stermThread()
5. Im Classpath muß eine aktuelle Version von Notes.jar sein.
6. import lotus.domino.

Gruß Axel
« Letzte Änderung: 06.09.06 - 13:32:26 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #9 am: 06.09.06 - 13:39:48 »
Hi noch ma,

@Axel:
Grundsätzlich Zustimmung in allen Punkten, aber:
Zitat:
5. Im Classpath muß eine aktuelle Version von Notes.jar sein.
Die Version des Notes.jar's muss die gleiche sein, wie die der dll im Programmverzeichnis, sonst knallt es Recht schnell (gerade, wenn man ein Notes.jar R6 mit einer lokalen Installation R5 verwenden will).

@Chris:
Das könnte übrigens genau das Problem sein...

Thomas
« Letzte Änderung: 06.09.06 - 13:41:56 von Thomator »
+++To be human is more important than to be important!+++

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #10 am: 06.09.06 - 13:44:18 »
Hallo,

2. der Notes-Client ist unter C:\Lotus\Notes installiert!
Diesen Wert habe ich auch in die Systemvariable path an allererster Stelle eingetragen!, ansonsten stehen dort noch einige andere Dinge, aber nichts was auch noch auf Notes zielt.
Danach Neustart von Eclipse!

Gleicher Fehler wie oben, Notesfactory. class nicht verfügbar.

4. Coding ist drin, siehe auch gepostetes Coding, das passt alles
5. Es ist die Notes.jar-Version angehängt, die die Installation von Notes mitgebracht hat
6. ist auch drin, keinerlei Fehlermeldung

Die Vm mit dem Parameter aufgerufen, gibt unter anderem folgende Inhalte in der Konsole aus:


[Dynamic-linking native method lotus.domino.NotesThread.NnotesLoad ... JNI]
[Dynamic-linking native method lotus.domino.NotesThread.NnotesInitThread ... JNI]

Ideen?

@Thomas:
Wie kann ich die unterschiedlichen Notes.jars prüfen?


Vg

Chris

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #11 am: 06.09.06 - 13:54:37 »
Hi Chris,

Guck Dir einfach mal an, von wann das Notes.jar ist, das im Classpath steht und dann das in Deiner Clientumgebung. Anhand der Größe und der Erstellungs-/Änderungsdaten siehst Du, ob die gleich sind.

Was mir da auch noch einfällt: Ich glaub, in dem Notes.jar des Clients ist das Domino-Package gar nich drin. (Weiß ich grad nich genau, da ich eigentlich ausschließlich in der Serverumgebung arbeite)
Änder den Import mal auf

lotus.notes.*;


Thomas
+++To be human is more important than to be important!+++

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #12 am: 06.09.06 - 16:35:14 »
Ich verstehe das momentan nicht, warum das nicht läuft.
Kann eigentlich nur noch am Notes.jar liegen.
Ich selbst war letztens (da ich das länger nicht mehr gemacht hab und das letzte mal mit Domingo) nicht mehr daran gedacht, dass NotesThread.sinitThread() /sessionZugriff / NotesThread.stermThread() notwendig sind.
Mach allerdings auch wirklich nicht wenig anderen Krempel.
Wobei Lotus natürlich auch eine vernünftige Fehlermeldung hätten spendieren können...
Deshalb kann ich die Frustration nachvollziehen.
Ansonsten müßte das aber wirklich klappen.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #13 am: 06.09.06 - 16:52:01 »
Ok, ich hab Quark erzählt...

Das Package is auch im Notes.jar des Clients da, inclusieve der NotesFactory-Klasse.
Dann kann es eigentlich wirklich fast nur noch an verschiedenen Versionen liegen.
Darauf weist eigentlich auch hin, dass in Eclipse im Notes.jar die Klasse offensichtlich gefunden wird, bei der Ausführung aber nicht. Das sieht doch stark nach fehlerhaftem Linken der dll aus, und das passiert durchaus mal, wenn bei nativen Schnittstellen nich alles exakt übereinstimmt.

Thomas
« Letzte Änderung: 06.09.06 - 16:55:29 von Thomator »
+++To be human is more important than to be important!+++

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #14 am: 06.09.06 - 17:22:52 »
Was ich am Montag echt nicht so witzig fand war, dass ein Vergessen von NotesThread.sinitThread() sich von den Fehlermeldungen auch so ähnlich wie ein Link-Error manifestierte. Aber das ist es hier auch nicht. Tippe auch extrem auf inkompatible Versionen. Ansonsten Rechner hoch und runterfahren. Aber das ist höchst unwahrscheinlich.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline chriss76

  • Junior Mitglied
  • **
  • Beiträge: 99
  • Ich liebe dieses Forum!
Re: Der Import lotus kann nicht aufgelöst werden
« Antwort #15 am: 07.09.06 - 08:28:01 »
Hallo Leute,

es funktioniert!
Allerdings kann ich den Grund nicht eindeutig zu ordnen, ich habe neben Euren Tipps auch noch die Java-Sicherheitseinstellungen im Notes-Client verändert und den Notes-Client wie auch den Rechner mehrfach neu gestartet.

Ich bekomme im Debugmode immer noch den gleichen Fehler, aber nicht immer ganz nachvollziehbar. Im "normalen" run geht es ohne Probleme!

Vielen Dank nochmal für Eure Hilfe und die investierte Zeit!

Viele Grüsse

Chris

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz