lotus.domino.local 提供了從同一計(jì)算機(jī)上的 Notes/Domino 軟件進(jìn)行調(diào)用。
lotus.domino.cso 提供了從通過遠(yuǎn)程連接訪問的 Domino 服務(wù)器進(jìn)行調(diào)用。
對(duì)于本地訪問,Java 程序運(yùn)行在安裝有 Notes 客戶機(jī)或者 Domino 服務(wù)器的計(jì)算機(jī)上。本地類由 JNI(Java Native Interface)構(gòu)建來,用于訪問與 JVM(Java Virtual Machine)相同的進(jìn)程中的 Notes/Domino 二進(jìn)制文件。對(duì)于遠(yuǎn)程訪問,Java 程序使用 CORBA(Common Object Request Broker Architecture)請(qǐng)求 Domino 服務(wù)器所提供的服務(wù)。遠(yuǎn)程類使用 CORBA 通過 TCP/ip 網(wǎng)絡(luò)訪問服務(wù)器。遠(yuǎn)程訪問由以下兩個(gè)部分組成:
客戶機(jī)通過 HTTP 協(xié)議獲得服務(wù)器的初始對(duì)象,作為 IOR (InterOperable Object Reference)。
客戶機(jī)通過 IIOP 連接進(jìn)一步獲得其他對(duì)象。
本地調(diào)用
createSession 的調(diào)用沒有參數(shù),第一個(gè)參數(shù)為 null 或者第一個(gè)參數(shù)為空字符串都表示本地調(diào)用。下列代碼是等價(jià)的:
Session s = NotesFactory.createSession()
Session s = NotesFactory.createSession((String)null)
Session s = NotesFactory.createSession("")
將 null 轉(zhuǎn)換成 String,以避免過載沖突。要從應(yīng)用程序和 servlet 中實(shí)現(xiàn)本地調(diào)用,路徑中必須包含 Notes/Domino 的程序目錄,類路徑中必須包含 Notes/Domino 程序目錄中的 Notes.jar。例如:
set path := %path%;c:/lotus/domino
set classpath := %classpath%;c:/lotus/domino/Notes.jar
Notes.jar 中包含 lotus.domino 和 lotus.domino.loca 包。本地調(diào)用需要用 NotesThread 類治理線程。NotesThread 類擴(kuò)展了 java.lang.Thread,包含專門針對(duì) Domino 的初始化和終止代碼。您有以下三種選擇:
通過繼續(xù)來執(zhí)行線程。
通過 Runnable 接口來執(zhí)行線程。
通過靜態(tài)方法來執(zhí)行線程。
通過繼續(xù)來執(zhí)行線程
要通過繼續(xù)來執(zhí)行線程,需要擴(kuò)展 NotesThread,而不是 Thread,并且需要包含 runNotes 方法,而不是 run 方法。NotesThread 線程可以和任何其他線程一樣通過 start 方法來啟動(dòng)。這種方式比靜態(tài)方法(稍后討論)輕易使用,且不易出錯(cuò)。
import lotus.domino.*;
public class myClass extends NotesThread
{
public static void main(String argv[])
{
myClass t = new myClass();
t.start();
}
public void runNotes() // entry point for Notes thread
{
try
{
Session s = NotesFactory.createSession();
// Operational code goes here
}
catch (Exception e)
{
e.PRintStackTrace();
}
}
}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注