「リモートアクセス」の編集履歴(バックアップ)一覧はこちら
「リモートアクセス」(2008/10/01 (水) 15:54:03) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**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) {
}
}
}
**参考URL
|[[Nagarage>http://nagare.kimie.name/blog/2007/12/javanotes.html]]|リモートアクセスの仕組みについて詳しく書いてある|
|[[Dominoについてのいろいろ>http://www63.tok2.com/home2/jd4/domino.html]]|中盤の下あたりにNotes/Domino Java-APIについての講座がある|
**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>http://nagare.kimie.name/blog/2007/12/javanotes.html]]|リモートアクセスの仕組みについて詳しく書いてある|
|[[Dominoについてのいろいろ>http://www63.tok2.com/home2/jd4/domino.html]]|中盤の下あたりにNotes/Domino Java-APIについての講座がある|