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

Local variables unavailable

(1/6) > >>

chriss76:
Hallo Leutz,

wollte mich langsam mal an Notes und Java heran tasten und habe eines von Euren
Codingbeispielen aus diesem Forum mit Ecplise erstellt.
Leider kriege ich mit Ecplise Debugger immer die Fehlermeldung:
"local variables unavailable" .

Welchen Variablen fehlen mir denn??

Grüsse Chris

Gandhi:
Den Code solltest Du dann schon anfügen...

chriss76:
Hallo,


/*
* testprogramm.java
*
* Created on 31. Januar 2003, 10:05
*/
package test;
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.
ses = NotesFactory.createSession(); //Erzeugen eines Sessionobjekts
Database db=ses.getDatabase("Server","mail/meinemail.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());

}
catch (Exception e){
System.out.println("Es ist ein Fehler aufgetreten");
e.printStackTrace();
}
finally{
try{
ses.recycle(); // Ganz wichtig, wenn dieser Befehl nicht ausgeführt wird, wird der Speicher den die Notesklassen im Hintergrund verwendet haben nicht mehr freigeben.
}
catch (NotesException e){}
NotesThread.stermThread(); //Domino Umgebung beenden. Ebenfalls ganz wichtig wenn man das nicht macht kann das zu Abstürzen von Notes führen.
}
}

}

Wahrscheinlich fehlen die Systemvariablen in meinem Windows, oder???

Fehlermeldung:
NotesThread.sinitThread()line: 171 [local variables unavailable]

Eine Idee??

Grüsse Chris






animate:
das [local variables unavailable] bedeutet, dass dir für die Klassen, die du nutzt keine Debug Info zur Verfügung steht. Es beschreibt nicht den Fehler, den du machst.

Poste bitte die vollständige Fehlermeldung, nicht nur eine Zeile davon.

flaite:
bin mir nicht 100% sicher, aber zu 95%, dass NotesThread.sinitThread() nur für lokale Zugriffe verwendet werden kann.
Willst du nicht damit erst mal arbeiten? Mit lokalen Zugriffen.
Es funktioniert auch, wenn der Server wo anders installiert hast, aber auf dem Rechner auf dem das JavaProgramm läuft ein Notes Client installiert ist, der sich mit dem entsprechenden Server auf dem der Agent verbinden kann.

Ansonsten musst du mit diesem Runnable Zeugs arbeiten.


--- Code: ---import lotus.domino.*;
import java.lang.*;

public class agentdebugger implements Runnable
{
public static void main(String argv[])
{
try{
   
agentdebugger ad = new agentdebugger();
NotesThread t =new NotesThread((Runnable)ad);
t.start();
}
catch (Exception e)
{
   e.printStackTrace();
}}
public void run()
{
try
{
Session s = NotesFactory.createSession();
String p = s.getPlatform();
System.out.println("Platform = " + p);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

--- Ende Code ---

Wobei das nix ist, das ein Java-Anfänger normalerweise in den 6 Monaten nachvollzieht.

Das ist Multithreading.
Die run Methode läuft in einem anderen Thread als das Hauptprogramm.
run() wird ja nirgendwo direkt aufgerufen.
Vereinfacht gesprochen geht der code innerhalb von run() durch das t.start() in einen to-be-run-Status und wird irgendwann ausgeführt.
Wichtig ist das implements Runnable in der Klassendeklaration.
 



Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln