lokaler aufruf via java

  • hallo,
    ich versuche schon seit einiger zeit aus java heraus den notes client lokal aufzurufen, um auf die domino objects zuzugreifen. ziel ist es, nachrichten eines clients in java einzulesen und dort zu verarbeiten. hierbei halte ich mich an die anweisungen dieses tutorials.


    allerdings verursacht der beispielcode bei mir folgenden fehler:
    "Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: NCreateSession"


    beispielcode:


    import lotus.domino.*;
    public class LocalCall implements Runnable
    {


    public static void main(String argv[]){
    LocalCall localCall = new LocalCall();
    Thread notesThread = new Thread((Runnable)localCall);
    notesThread.start();
    }
    public void run() {
    try{
    Session session = NotesFactory.createSession();
    // Operational code goes here
    }
    catch(Exception e) {
    e.printStackTrace();
    }
    }
    }


    was bedeutet hier "unsatisfied link error"?
    hat irgendjemand schon mal was vergleichbares gemacht?

  • Womit entwickelst du denn ?
    Bist du sicher das dort auch alles korrekt eingestellt ist ?
    Welche Jar hast du denn eingebunden ?
    Hast du einen Server oder einen Client auf der Maschine installiert ?

  • eclipse 3.1


    java 1.5


    eingebundene jar:
    notes.jar (c:\program files\notes)


    meine klassen befinden sich im notes directory (c:\program files\notes)


    im tutorial wird noch erklärt, dass die notes.jar im directory vorhanden sein muss und der path (denke mal der arbeitspfad) ebenfalls. kann ich etwa in eclipse den path explizit definieren?

  • ok, ich hab den pfad hinzugefügt. am ergebnis ändert dies jedoch nichts.
    hast du schon mal vergleichbares gemacht? wenn ja, mit welcher entwicklungsumgebung?

  • hmm, wenn ich den aufruf über statische methoden mache, scheints zu funktionieren. sehr merkwürdig!
    der code:


    import lotus.domino.*;
    public class StaticLocalCall
    {
    public static void main(String argv[])
    {
    try{
    NotesThread.sinitThread(); // start thread
    Session session = NotesFactory.createSession();
    System.out.println("session created");
    //Get the local address book
    Database nab = session.getDatabase("",session.getAddressBooks().elementAt(0).toString());

    }
    catch(Exception e){
    e.printStackTrace();
    }
    finally{
    NotesThread.stermThread(); // must terminate every thread
    }
    }
    }


    danke für deine mühe!

  • Mir ist an deinem Script noch was aufgefallen woran es eventuell liegen könnte:



    Wiese verwendest du hier Thread und nicht NotesThread ?
    Im Tutorial wird hier auch NotesThread verwendet

  • guten morgen,


    ok, jetzt versucht meine anwendung immerhin den notes client zu konnektieren. allerdings wird die "auto.mdm" (Auto Configure modem command file) nicht gefunden.


    "COM1: Error opening modem command file"
    c:\data2\modems\auto.mdm


    in der notes administration help habe ich gelesen, dass ich in diesem falle die "GEN_ALL.MDM" spezifizieren soll.


    diese dateien befindet sich weder auf meinem rechner noch auf denen meiner kollegen. ich habe sämtliche odner durchsuchen lassen und nichts gefunden.


    dann habe ich gelesen, den domino server eventuell auf eine andere (elegantere) weise zu erreichen: per fernzugriff (corba). brauche ich für diese lösung den zugriff auf server einstellungen? dazu bin ich nämlich nicht berechtigt


    vielen dank!

  • Das was du da tust ist der Fernzugriff per CORBA.
    Wenn du dir die Notes Designer Hilfe zum Stichpunkt CORBA anschaust siehst du da so in etwa den Quellcode und die Importanleitung, die du ja schon durchgeführt hast.


    Was du wegen dem Modem File noch überprüfen solltest:
    Welche Ports sind denn aktiviert bei deinem lokalen Notes Client ?
    Ist da eventuell ein COM1 aktiviert den du gar nicht benutzt ?
    Normalerweise reicht hier der TCPIP Port.
    Schalte doch mal alle anderen ab und probiers dann noch mal.


    Wo bekommst du die Fehlermeldung überhaupt ?

  • hallo taurec,
    hab jetzt mal die unbenötigten com-ports ausgeschalten und jetzt funktionierts soweit.


    das mit dem local/remote zugriffen habe ich jetzt auch verstanden: ich bin bisher immer von 2 verschiedenen lösungswegen ausgegangen, eigentlich ist es aber nur einer: erst den lokalen zugriff zum client, dann der fernzugriff vom client zum server, richtig?
    gruss

  • hallo zusammen,
    gibt es zur notes.jar eigentlich auch eine api documentation?
    ich würde gerne erfahren welche argumente ich einem getDatabase befehl (session.getDatabase(arg1,arg2) mitgeben muss, dass ich auf die inbox zugreifen kann.
    ist dieser ansatz überhaupt richtig, oder muss ich dies durch views (z.B. View inboxView = database.getView("InBox");) realisieren?

  • super! jetzt kann ich auf die datenbanken zugreifen und auch verschiedene views wählen.
    allerdings suche ich vergeblich nach der .nsf file, die meine inbox-infomationen enthält. mein ziel ist es ja, das postfach zu überprüfen. im prinzip müsste es also so eine art mailbox.nsf mit der view "inbox" geben. denke ich richtig?