Lotus Domino/Notes 是廣泛採用的跨平台文件型資料庫與郵件系統,而 Java/J2EE 則是企業級開發主流技術。兩者整合時,Java 遠端存取 Domino 資料庫成為常見需求。本文基於 Domino 5.0.9 實戰經驗,梳理 CORBA/DIIOP 架構下的完整配置流程,並釐清網路上常見的錯誤觀念。
開啟 Domino Administrator → 設定 → 伺服器文件 → 「安全性」分頁 → 「Java/COM 誰可以」區塊,分別在「執行有限制的 Java/Javascript/COM」與「執行無限制的 Java/Javascript/COM」填入連線使用者或其所屬群組。
缺少 Internet 地址/密碼會導致只有管理員能連線,一般使用者連線失敗且無明確錯誤提示。註冊時勾選「進階選項」→ 填寫網域(自動產生 Internet 地址)→ 勾選「設定 Internet 密碼」。現有使用者可編輯註冊資訊補齊。
檢查 ServerTasks 列表中包含 DIIOP,例如:ServerTasks=Update,Replica,Router,AMgr,AdminP,CalConn,Sched,DIIOP,HTTP,LDAP
使用者對伺服器的存取權限、DIIOP 連接埠等採預設值即可。完成上述設定後必須重啟 Domino 伺服器。
路徑:Domino主目錄/data/domino/Java/NSCO.jar,加入專案建置路徑或 CLASSPATH。
路徑:Domino主目錄/data/domino/Html/diiop_ior.txt。可複製至本地,或開放 Domino HTTP 服務讓用戶端下載。
import lotus.domino.*;
import java.io.*;
public class Test {
public static void main(String args[]) {
Session session;
String ior;
String dominoURL = "11.68.81.27";
String username = "username";
String password = "passWord";
try {
// 嘗試讀取本地 ior 檔
try {
BufferedReader iorin = new BufferedReader(new FileReader("diiop_ior.txt"));
ior = iorin.readLine();
iorin.close();
} catch (IOException e) { ior = null; }
// 本地無檔則透過 HTTP 下載
if (ior == null) ior = NotesFactory.getIOR(dominoURL);
session = NotesFactory.createSessionWithIOR(ior, username, password);
System.out.println(session); // 列印成功即連線正常
} catch (NotesException ex) {
System.out.println(ex.getClass().getName() + ":" + ex.id);
}
}
}
diiop_ior.txt,HTTP 服務非必要;啟動 HTTP 僅為下載該檔案。NSCO.jar;本地存取只需 notes.jar。掌握正確配置流程與避開常見誤區,能讓 Java 與 Domino 整合更順暢、穩定。