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

von Java aus auf Notes-DB zugreifen

<< < (6/9) > >>

Ralf_M_Petter:
Das sollte auch gehen, wichtig ist, dass die Datenbank für FolderReference enabled ist.

Dann kann mit dem doc.getFolderReference() ein Vector mit den  UNIDs der Folder abgefragt werden.

Hier ein Auszug aus der Hilfe des Domino Designers dazu:

FolderReferences property  

Read-only. The universal IDs for the folders containing a document.
Defined in
Document
Data type
java.util.Vector; elements are String
Syntax
public java.util.Vector getFolderReferences()
    throws NotesException
Usage
Hinweis  The database must have the $FolderRef and $FolderRefInfo hidden views to support folder references. These views can be copied from the Release 5 mail template. Also, this property does not return view references.
Folder references must be enabled for the database. See the FolderReferencesEnabled property of Database.
Siehe auch
Accessing document properties

Hoffe das hilft, sonst kannst du bei Problemen natürlich fragen.

Grüße

Ralf

mlschach:
danke. das hilft erstmal. hat mich jedoch gleich zu einem weiteren problem geführt.
zunächst hatte ich mein programm mit hilfe der lotus.notes-Klassen geschrieben. Um getFolderReference() zu nutzen, braucht ich jedoch die lotus.domino-Klassen.

 ??? Meine erste Frage: Wo besteht der Unterschied zwischen den Klassen? Welches ist die bessere Wahl?

Zweite Frage: Nach dem Umschreiben meines Programmes bekomme ich plötzlich ein Problem mit der Zeile:

Document doc = dc.getFirstDocument

 ??? Woran liegt das und wie behebe ich dieses Problem???

Hier mal mein ganzes kleines Programm nebst Fehlerausgabe (kann zwar problemlos kompilieren, aber nicht ausführen):


--- Code: ---/* Analyzer.java */

import java.util.*;
import lotus.domino.*;

public class Analyzer extends NotesThread
{
    protected Session sess;
    protected Database db;
    protected DocumentCollection dc;
   
     
    public static void main(String[] args)
    {
        Analyzer a = new Analyzer();
        a.start();
    }
   
   
    // open db
    public boolean init()
    {
        try
        {
             sess = NotesFactory.createSession();
             db = sess.getDatabase("", "TUTOR2.NSF");
               
            if(!db.isOpen())
            {
                System.out.println("...Fehler beim Öffnen...");
                return false;
            }  
            else
            {
                //System.out.println("...DB geöffnet...");
                if (!db.getFolderReferencesEnabled())
                {
                    db.setFolderReferencesEnabled(true);
                    System.out.println("...FolderReference Enabled...");
                }
                else
                {
                    System.out.println("...FolderReference true...");                                                                                
                }
   
            }
         
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return false;
        }
        return true;
    }
       
    // print db name
    public void dbInfo()
    {
        try
        {
            System.out.println("..." + db.getFileName() + " geöffnet ...");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
       
    // fill DocumentCollection
    public void readNotesDB()
    {
        try
        {
            dc = db.getAllDocuments();
            System.out.println("Database \"" +
            db.getFileName() + "\" has " + dc.getCount() + " documents");
            int n = 0;
            // warum hier fehler???
            Document doc = dc.getFirstDocument();
           
           /* while (doc != null) {
                n++;
                System.out.println
                ("Document # " + n + ": " +
                doc.getItemValueString("Subject"));
                doc = dc.getNextDocument(doc);
            }*/
                                   
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
       
    // run thread
    public void runNotes()
    {
        if(init())
        {
            dbInfo();            
            readNotesDB();
        }
                       
     }
}

--- Ende Code ---
         


Das Programm produziert folgende Ausgabe:


--- Code: ---...FolderReference true...
...TUTOR2.NSF geöffnet ...
Database "TUTOR2.NSF" has 518 documents
java.lang.UnsatisfiedLinkError: NIncRefCount
        at lotus.domino.local.NotesBase.NIncRefCount(Native Method)
        at lotus.domino.local.Document.<init>(Document.java:86)
        at lotus.domino.local.Database.FindOrCreateDocument(Database.java:238)
        at lotus.domino.local.DocumentCollection.getFirstDocument(DocumentCollection.java:117)
        at Analyzer.readNotesDB(Analyzer.java:82)
        at Analyzer.runNotes(Analyzer.java:105)
        at lotus.domino.NotesThread.run(NotesThread.java:203)

--- Ende Code ---

Was genau bedeutet dieser Fehler? Was mache ich falsch?

 ??? ??? ???

ubb tags eingefügt von Axel

Axel_Janssen:

--- Code: ---Die Forums-software kennt verschiedene sogenannte UBB-tags. UBB-tags sind ein Pseudo-Standard benannt nach dem Produkt UBB, der dies als erstes benutzte.
&#91
Dein code ist leichter zu lesen, wenn du unmittelbar vor diesem <code> und nach diesem </code> schreibst. Genau wie html tags.
WICHTIG: Statt kleiner-gleich // grösser-gleich mit diesen Klammern [].
Ich habe das in deinem Posting zur besseren Lesbarkeit editiert.
Da können wir ja beide schreibend drauf zugreifen :-)  

--- Ende Code ---


Gracias, Danke, Thank you, Muito obrigado,
für dieses interessante Problem (explizit nicht zynisch gemeint).

Dein code ist soweit technisch ok.
Es könnte an deiner Installation liegen.


Ich habe im Disku-Forum von notes.net ähnliches gefunden.
Hast du evt. neben dem 5er-Client auch einen 6er Notes installiert? Oder arbeitest du ganz mit 6.
Es hängt damit zusammen (meine Meinung) dass im Java-Code in  notes.jar über Java Native Interface auf OS-Libraries (in C) zugegriffen wird. Offenbar findet er nicht die Richtigen.
Ich hatte (und habe) verwandte Problem auf einem Rechner, wo der Notes-Client auf Grund eines Absturzes in keiner Win-Registry und sonstigen PATH-Variable mehr auftaucht.


Hier der komplette thread aus notes.net r5 forum:

--- Zitat ---java.lang.UnsatisfiedLinkError: NIncRefCount
Posted by b hausch on 5.Feb.03 at 09:36 AM using a Web browser
Category: Lotus Tools -- Java/CORBA ToolkitRelease: 5.0.10Platform: Windows 2000

when trying to get the first Document out of a DocumentCollection in a standalone app using:

DocumentCollection dc = m_db.getAllDocuments();
Document doc = dc.getFirstDocument();

i get folowing error:

java.lang.UnsatisfiedLinkError: NIncRefCount
at lotus.domino.local.Document.<init>(Document.java:86)
at lotus.domino.local.Database.FindOrCreateDocument(Compiled Code)
at lotus.domino.local.DocumentCollection.getFirstDocument(DocumentCollec
tion.java:117)
at Connect.SelectPerson(Connect.java:76)
at Connect.runNotes(Connect.java:36)
at lotus.domino.NotesThread.run(NotesThread.java:203)
at lotus.domino.NotesThread.run(NotesThread.java:201)

hope someone can help

regards
b.

ANTWORT:
Posted by Valery Kobzar on 18.Mar.03 at 02:11 AM using a Web browser
Category: Lotus Tools -- Java/CORBA ToolkitRelease: 5.0.10Platform: Windows 2000

this error when verion of client 6.x.x
reinstall Lotus Notes v.5.x.x and it fix this problem :)

sorry for my english :)

ANTWORT
RE: java.lang.UnsatisfiedLinkError: NIncRefCount
Posted by b hausch on 19.Mar.03 at 10:39 AM using a Web browser
Category: Lotus Tools -- Java/CORBA ToolkitRelease: 5.0.10Platform: Windows 2000

didn´t know why, but problem seams to be solved

--- Ende Zitat ---

Hier sind noch ein paar ähnliche Problemmeldungen (ohne Lösungen):
Link weitere Problemmeldungen


Versuche vielleicht mal in die PATH-Variable des OS an die erste Stelle auf das Programm-Verzeichnis des Notes-Clients zu verweisen.
Also: Win-Startknopf//Systemsteuerung//System//Erweitert //Umgebungsvariablen-Button // System Variablen und da PATH. An erste Stelle sowas wie C:\Lotus\Notes; (hängt davon ab, wo dein Systemverzeichnis liegt).
Hmm. Wenn man mit Netbeans arbeitet, muss man vielleicht auch  das Notes-Programmverzeichnis explizit mounten. Kennt sich Ralf besser aus.

mlschach:
habe tatsächlich notes 6. hatte ich damals einfach über notes 5 rübergebügelt. habe jetzt einfach nochmal komplett deinstalliert und wieder installiert. und siehe da, das programm funktioniert. vielen dank. ich meld mich dann wieder bei problemen  ;D ;D

Axel_Janssen:
Sowas kann einen aber wirklich in den Wahnsinn treiben. Das kenne ich. Interessant ist v.a. dass es in keinem der Foren auf notes.net die korrekte Erklärung da ist, warum das auftritt. Meine Erklärung ist ja mehr eine Hypothese.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln