リモートアクセス

Javaを使ったリモートアクセス

  • メールDBを取得
 ①データベースディレクトリから取得
import lotus.domino.*;
public class MailDB implements Runnable{
public static void main(String[] args) {
	MailDB mdb = new MailDB();
	Thread nt = new Thread(mdb);
	nt.start();
}
public void run() {
	try {
		String user = "testuser";
		String pass = "password";
		String ip = "127.0.0.1";
		//セッションを作成
		Session s = NotesFactory.createSession(ip, user, pass);
		//データベースディレクトリを取得
		DbDirectory dir = s.getDbDirectory(null);
		//メールDBを取得
		Database db = dir.openMailDatabase();
		DocumentCollection dc = db.getAllDocuments();
		Document doc = dc.getLastDocument();
		//アイテムを表示
		Vector items = doc.getItems();
		for (int i=0; i<items.size(); i++) {
			Item item = (Item)items.get(i);
			System.out.println(item.getName() + "\t:\t" + doc.getItemValue(item.getName()));
		}
	} catch (NotesException e) {
		e.printStackTrace();
	} catch (Exception e) {
		e.printStackTrace();
	}
}
}

 ②データベース名から取得
import java.util.Vector;
import lotus.domino.*;
public class DataBase implements Runnable {
public static void main(String[] args) {
	DataBase db = new DataBase();
	Thread nt = new Thread((Runnable)db);
	nt.start();
}
public void run() {
	try{
		String user = "testuser";
		String pass = "password";
		String ip = "127.0.0.1";
		String dbname = "mail\\testuser.nsf";
		//セッションを作成
		Session s = NotesFactory.createSession(ip, user, pass);
		//データベースを取得
		Database db = s.getDatabase(null, dbname);
		//ドキュメントコレクションを取得
		DocumentCollection dc = db.getAllDocuments();
                       Document doc = dc.getFirstDocument();
		//アイテムを表示
		Vector items = doc.getItems();
		for(int i=0;i<items.size();i++){
			Item item = (Item) items.get(i);
			System.out.println(item.getName() + "\t:\t" + doc.getItemValue(item.getName()));
		}
		
	} catch(Exception e) {
		
	}
}
}

 ③データベース名とビュー名から取得
import java.util.Vector;
import lotus.domino.*;
public class DataBase implements Runnable {
public static void main(String[] args) {
	DataBase db = new DataBase();
	Thread nt = new Thread((Runnable)db);
	nt.start();
}
public void run() {
	try{
		String user = "testuser";
		String pass = "password";
		String ip = "127.0.0.1";
		String dbname = "mail\\testuser.nsf";
		String viewname = "($Inbox)";
		//セッションを作成
		Session s = NotesFactory.createSession(ip, user, pass);
		//データベースを取得
		Database db = s.getDatabase(null, dbname);
		//ビューを取得
		View view = db.getView(viewname);
		ViewNavigator nav = view.createViewNav();
		ViewEntry entry = nav.getFirstDocument();
		Document doc = entry.getDocument();
		//アイテムを表示
		Vector items = doc.getItems();
		for(int i=0;i<items.size();i++){
			Item item = (Item) items.get(i);
			System.out.println(item.getName() + "\t:\t" + doc.getItemValue(item.getName()));
		}
		
	} catch(Exception e) {
		
	}
}
}

  • その他
DocumentCollectionからループを使ってDocumentを得る際に
getCountとgetNthDocumentを使うよりgetNextDocumentかgetPrevDocumentを
使った方が早い(キャッシュがどうたら)。特にDIIOP。

参考URL

Nagarage リモートアクセスの仕組みについて詳しく書いてある
Dominoについてのいろいろ 中盤の下あたりにNotes/Domino Java-APIについての講座がある
最終更新:2008年10月01日 15:54
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。