Java對Domino Objects的存取控制

來源:互聯網
上載者:User

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 網路存取伺服器。遠端存取由以下兩個部分組成:
  

  客戶機通過 HTTP 協議獲得伺服器的初始對象,作為 IOR (InterOperable Object Reference)。
  

  客戶機通過 IIOP 串連進一步獲得其他對象。

  

 

  在 lotus.domino 中,NotesFactory 類提供了 createsession 和其他方法,以便在 Java 應用程式和 servlet 中啟用對 Domino Objects 的訪問。非凡的調用方式確定了訪問是本地還是遠端。要編譯使用 lotus.domino 包的 Java 程式,類路徑必須包含 Notes.jar(本地)或者 NCSO.jar(遠程)。例如:
  set classpath=%classpath%;c:\lotus\domino\Notes.jar 或者 set classpath=%classpath%;c:\lotus\domino\data\domino\java\NCSO.jar 其中 Notes.jar 可以在任何 Notes/Domino 安裝的程式目錄中找到。NCSO.jar 可以在 Domino Designer 或 Domino 伺服器資料目錄下的 domino\java 目錄中找到。
  

  本地調用

  createSession 的調用沒有參數,第一個參數為 null 或者第一個參數為空白字串都表示本地調用。下列代碼是等價的:
  

  Session s = NotesFactory.createSession()

  Session s = NotesFactory.createSession((String)null)

  Session s = NotesFactory.createSession("")

  

  將 null 轉換成 String,以避免過載衝突。要從應用程式和 servlet 中實現本地調用,路徑中必須包含 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 包。本地調用需要用 NotesThread 類治理線程。NotesThread 類擴充了 java.lang.Thread,包含專門針對 Domino 的初始化和終止代碼。您有以下三種選擇:
  

  通過繼續來執行線程。

  通過 Runnable 介面來執行線程。
  

  通過靜態方法來執行線程。
  

  通過繼續來執行線程
  要通過繼續來執行線程,需要擴充 NotesThread,而不是 Thread,並且需要包含 runNotes 方法,而不是 run 方法。NotesThread 線程可以和任何其他線程一樣通過 start 方法來啟動。這種方式比靜態方法(稍後討論)輕易使用,且不易出錯。
  

  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();

  }

  }

  }
  

 

-

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.