Я получаю исключение при вызове метода NotesCalendar.getNewInvitations.Получение исключения при использовании NotesCalendar.getNewInvitations
NotesException: NotesCalendar error: The database handle is NULL
at lotus.domino.local.NotesCalendar.NgetNewInvitations(Native Method)
at lotus.domino.local.NotesCalendar.getNewInvitations(Unknown Source)
at JavaAgent.main(Unknown Source)
Я пытаюсь запустить этот код локально на Domino Server.
import lotus.domino.*;
public class JavaAgent extends NotesThread {
public static void main(String []args){
try
{
NotesThread.sinitThread(); // start thread
Session session = NotesFactory.createSession();
System.out.println("session="+session);
// (Your code goes here)
DbDirectory dbdir = session.getDbDirectory("");
System.out.println("dbdir="+dbdir);
Database db1= session.getDatabase("server", "Conf");
NotesCalendar cal = session.getCalendar(db1);
java.util.Calendar jdt = java.util.Calendar.getInstance();
jdt.set(2015, 1, 1, 1, 1, 1);
DateTime dt1 = session.createDateTime(jdt);
DateTime dt2 = session.createDateTime("Yesterday 02");
// java.util.Vector invites = cal.getNewInvitations(dt1, dt2);
// System.out.println("invites "+invites.size());
java.util.Vector invites= cal.getEntries(dt1, dt2);
for (int j = 0; j < 3; j++) {
// Create document to post results
Document doc = db1.createDocument();
doc.appendItemValue("Form", "main");
doc.appendItemValue("subject", "New invitations");
RichTextItem body = doc.createRichTextItem("body");
if (invites.size() == 0) body.appendText("No invitations");
else {
for (int i = 0; i < invites.size(); i++) {
NotesCalendarNotice cale = (NotesCalendarNotice)invites.elementAt(i);
body.appendText(cale.read());
cale.recycle();
body.addNewLine();
}
}
doc.save(true, true);
java.util.concurrent.TimeUnit.MINUTES.sleep(30);
invites = cal.getNewInvitations(dt1, cal.getUntilTime());
} }
catch(Exception e)
{
e.printStackTrace();
}
finally
{
NotesThread.stermThread(); // must terminate every thread
}
}
}
, на какой строке в коде отображается ваш код? Не могли бы вы указать на это :-) – jyrkim
Если вы выполняете локально на сервере, измените «server» на «» на ваш вызов 'session.getDatabase()'. Также попробуйте использовать абсолютное имя пути для аргумента DB - включая расширение на тот же вызов. Вы можете сделать это в любом случае. Имя БД означает, что оно будет найдено в каталоге заметок/данных. В любом случае попробуйте добавить расширение. – jch
Какая база данных Conf.nsf? Я предполагаю, что он основан на шаблоне дизайна ResourceReservation. Если это так, я не могу воспроизвести проблему, но я не думаю, что getNewInvitations() имеет смысл для базы данных резервирования. Он был разработан для работы с почтовым файлом. Можете ли вы попробовать тот же код с почтовым файлом? –