Java 對 Domino Objects 的訪問是通過高級包 lotus.domino 進行的。根據運行時環境,這個包中的接口是在其他兩個包中的壹個包中實現的:
lotus.domino.local 提供了從同壹計算機上的 Notes/Domino 軟件進行調用。
lotus.domino.cso 提供了從通過遠程連接訪問的 Domino 服務器進行調用。
對於本地訪問,Java 程序運行在安裝有 Notes 客戶機或者 Domino 服務器的計算機上。本地類由 JNI(Java Native Interface)構建來,用於訪問與 JVM(Java Virtual Machine)相同的進程中的 Notes/Domino 二進制文件。
對於遠程訪問,Java 程序使用 CORBA(Common Object Request Broker Architecture)請求 Domino 服務器所提供的服務。遠程類使用 CORBA 通過 TCP/IP 網絡訪問服務器。遠程訪問由以下兩個部分組成:
1、客戶機通過 HTTP 協議獲得服務器的初始對象,作為 IOR (Interoperable Object Reference)。
2、客戶機通過 IIOP 連接進壹步獲得其他對象。
遠程調用
1、Domino服務器設置:
首先進行domino服務器的設置,這是成功的關鍵步驟。
首先在服務器 Domino Directory(names.nsf)的 Server 文檔的配置頁面做如下配置
(1)打開Internet協議頁簽的Http頁簽,設置"允許HTTP客戶瀏覽數據庫:是"
(2)打開安全性頁簽,設置Java/Com限制。
運行有限制的java/javascript/com:* 運行無限制的java/javascript/com:*(3)打開端口頁簽的Internet頁簽的IIOP頁簽,設置HTTP的端口號是63148,狀態為啟用設置驗?
證選 項的名稱和口令:否,匿名:是
(4)打開端口頁簽的Internet頁簽的web頁簽,設置HTTP的端口號是80,狀態為啟用,設置驗證?
選項的名稱和口令:否,匿名:是
(5)要在服務器上啟動 HTTP 和 DIIOP 任務,需要確保這些任務在 Notes.ini 文件
ServerTasks 變量的任務列表中,如果正確配置了 Server 文檔該文件,那麽這些任務應該包?
含在任務列表中。Notes.ini 文件應該包含類似於下面的行:
ServerTasks=Update,Replica,Router,AMgr, AdminP,CalConn,Sched,DIIOP,HTTP,LDAP?
從運行的服務器,可以在控制臺中輸入下列命令來加載任務:
> load http > load diiop?
可以在控制臺用 tell 命令停止任務:
> tell http quit > tell diiop quit?
可以刷新 DIIOP 任務:
> tell diiop refresh?
可以重新啟動 HTTP 任務:
> tell http restart?
(6)獲取 IOR。如果使用createSessionWithIOR創建連接。需要將diiop_ior.txt文件從服務
器計算機復制到客戶機計算機上。該文件在服務器的安裝目錄的\Domino\Data\domino\html下。
2、連接domino服務器
在進行遠程調用時,createSession 簽名的第壹個參數是非空字符串。第壹個參數通常用來標識 Domino 服務器所在的計算機。例如:
Session s = NotesFactory.createSession("192.168.128.2")?
或者
Session s = NotesFactory.createSession("192.168.128.2:63148")?
第二個示例指定了端口號,這樣就無需在 192.168.128.2上運行 Domino Web 服務器。
要從應用程序或者 servlet 執行遠程調用,客戶機計算機的類路徑中必須包含 NCSO.jar。NCSO.jar 包含 lotus.domino 包、lotus.domino.cso 包、lotus.domino.corba 包以及 ORB 類,ORB 類包含用於遠程類的實現代碼。對於已安裝的 Domino Designer 和 Domino 服務器軟件,NCSO.jar 位於 Domino 數據目錄下的 domino\java?子目錄中。對於沒有安裝 Domino 軟件的計算機,必須從安裝該軟件的計算機上復制jar文件,並放到classpath。
編碼比較簡單。遠程調用不使用 NotesThread。只需使用主機名稱和(可選)端口號進行 createSession 調用即可。
註意:指定 DIIOP 端口來獲取 IOR 的能力是 Notes/Domino 6 的新功能。現在就可以使用遠程調用,無需允許對 Web 服務器的匿名訪問,甚至無需啟動 Web 服務器。
也可以通過其他方法獲取 IOR,然後使用 createSessionWithIOR。例如,可以將 diiop_ior.txt 文件從服務器計算機復制到客戶機計算機上。如果客戶機上包含對將使用的服務器有效的 diiop_ior.txt 文件。
以下程序演示了如何訪問domino庫,如何查找文檔,如何取得數據,如何下載附件,如何插入數據,如何上傳附件。
-----------------------------------------------------------------------------------
測試環境:domino5.0.7
Domino庫名:javatest.nsf
Form名:form1
域:
文本域:name1
時間域:name2
整型域:name3
Rtf域:name4
列表域:name5
多值域:name6