user1758952
user1758952

Reputation: 497

Fail to open Database using java notes api

I am trying to use a java program to control my lotus notes locally to send email automatically for me. I have encountered the following issues when trying to get a database object.

try {
    NotesThread.sinitThread();
    Session s = NotesFactory.createSession();
    Database db = s.getDatabase("", "mail/xxxx.nsf")
} finally {
    NotesThread.stermThread();
}

I got the following Exception:

NotesException: Database open failed (%1)
   at lotus.domino.local.Database.Nopen(Native Method)
   at lotus.domino.local.Database.open(Unknown Source)

I have copy my nsf file and Notes.jar to my classpath, anyone knows what is the problem with this?

Upvotes: 3

Views: 4230

Answers (2)

Simon O'Doherty
Simon O'Doherty

Reputation: 9349

A couple of things to check.

First change:

Session s = NotesFactory.createSession();

to:

Session s = NotesFactory.createSession((String) null, (String) null, password);

If it is still not working then change:

Database db = s.getDatabase("", "mail/xxxx.nsf")

to:

Database db = s.getDatabase((String) null, "mail/xxxx.nsf")

I would also recommend to getting into the habit of recycling your Domino objects.

Upvotes: 4

Richard Schwartz
Richard Schwartz

Reputation: 14628

You do not need to close Lotus Notes. The classes that you are using do not drive the Notes UI. They work with "back-end" storage objects. They are working with the Note C APIs to resolve any locks.

Are you prompted for your username and password with NotesFactory.createSession runs?

You mentioned that you copied the NSF file to your classpath. Why?? The Lotus Notes classes shuold normally Find NSF files in the Notes data root directory, which is created by your Notes client installlation. So your NSF file should be in something like Program Files (x86)\IBM\Lotus\Notes\Data\Mail\xxxx.NSF.

Upvotes: 0

Related Questions