1. 程式人生 > >Java遠端訪問Domino資料庫—DIIOP(1)

Java遠端訪問Domino資料庫—DIIOP(1)



Lotus Domino/Notes是目前很流行的、跨平臺的文件資料庫系統和電子郵件系統,而Java和J2EE技術也是目前廣泛使用的開發技術,因此在很多場合,不可避免地要涉及到Java遠端訪問Domino資料庫的問題

Java遠端訪問Domino資料庫推薦採用CORBA實現,但配置非常關鍵,筆者在工作中也遇到了這個問題,在查閱資料的過程中發現,很多文章明視訊記憶體在一些誤區或者說沒有寫清楚的地方,現將筆者的實踐經驗總結出來,和大家分享。筆者的Domino服務器版本是5.0.9。

基本步驟

1.修改Domino伺服器安全性配置,允許你的使用者執行Java/CORBA。具體操作是: 開啟Lotus Domino Administrator,進入配置,開啟當前

服務器文件,選擇“安全性”選項卡,在右下角“Java/COM 誰可以-”欄中,分別在“執行有限制的Java/Javascript/COM”和“執行無限制的Java/Javascript/COM”兩項中填上你的連線使用者名稱或使用者所在組。

2.給你的使用者加上Internet地址和口令。如果你的使用者沒有Internet地址和口令,那麼只有Domino的管理使用者才可以連線,其他普通使用者是連不上的,而且也沒有具體的提示。筆者曾在這個地方浪費了一天的時間。

註冊個人時,點選高階選項,填寫Internet網路域(Internet地址會自動生成,如[email protected]),同時選中“設定Internet口令”,以後將用這個Internet口令來建立會話。如果是已經註冊的使用者,則可以通過編輯

註冊資訊來修改。

3.開啟notes.ini檔案,確認載入了DIIOP服務。檢查notes.ini檔案中的類似這樣一行:

ServerTasks=Update,Replica,Router,AMgr, AdminP,CalConn,Sched,DIIOP,HTTP,LDAP

4.還有其他配置,如使用者對Server的訪問許可權、DIIOP埠設定等,這些啟用Domino伺服器的預設配置即可。配置完了需要重啟Domino服務器。

5.將Domino服務器主目錄下的data/domino/Java/NSCO.jar檔案拷入Java工作環境,並在工程的構建路徑中加入,或者在classpath環境變數中加入。

6.將Domino伺服器主目錄下的data/domino/html/diiop_ior.txt(CORBA訪問的識別資訊)拷入你的Java工作環境,或者開放Domino伺服器的HTTP服務

7.現在可以編寫連線程式進行測試了:

import lotus.domino.*;

import Java.io.*;

class Test {

public static void main(String args[]) {

Session session;

String ior;

String dominoURL="11.68.81.27"; //DOMINO服務器的。lP地址

String username="username"; //使用者ID

String password="password"; //使用者的internet口令

try {

//如果已將ior檔案拷到本地,則直接讀ior檔案

try {

BufferedReader iorin=

new BufferedReader(new FileReader("diiop_ior.txt"));

ior=iorin.readLine();

iorin.close();

} catch (IOException e) {

ior=null;

}

//如果讀不到diiop_ior.txt檔案,則需要通過網路從服務下載這個檔案

//這需要domino伺服器開放http服務

if(ior==null) ior =NotesFactory.getIOR(dominoURL);//下載IOR

session = NotesFactory.createSessionWithIOR(ior,username,password);

System.out.println(session); //如果這一行打印出來了,表示連線成功

} catch (NotesException ex) {

System.out.println(ex.getClass().getName()+":"+ex.id);

}

}}

需要澄清的幾個誤區

下面是一些相關技術文章中的幾個誤區或沒有寫清楚的地方:

1.必須開放Domino伺服器的HTTP服務

甚至連Lotus domino designer的幫助文件都是這麼說,其實不然,如果你直接將DIIOP_IOR.txt檔案從Domino伺服器拷貝過來了,HTTP服務就不必要啟動。啟動HTTP服務的惟一目的就是下載這個檔案。

2.必須要在Domino服務器配置中允許 HTTP 客戶瀏覽資料庫。

這個是完全不必要的,上面已經講了,開放HTTP服務僅僅是下載diiop_ior.txt檔案,並不需要瀏覽資料庫。

3.有些文章稱,確保設計者的機器上Notes.ini檔案中含有以下行: ALLOW_NOTES_PACKAGE_APPLETS=1。其實,這個是不必要的。

4. 有些文章提到要根據IDL檔案建立自己的CORBA庫,這樣也沒必要。對於遠端訪問,只需將data/domino/Java/NSCO.jar拷貝過去; 對於本地訪問,只需將Domino目錄下的notes.jar檔案加到clIasspath中即可

相關推薦

Java遠端訪問Domino資料庫DIIOP1

 Lotus Domino/Notes是目前很流行的、跨平臺的文件資料庫系統和電子郵件系統,而Java和J2EE技術也是目前廣泛使用的開發技術,因此在很多場合,不可避免地要涉及到Java遠端訪問Domino資料庫的問題。 Java遠端訪問Domino資料庫推薦採用COR

2017 Java開發面試題-資料庫1

1、儲存過程 --建立 CREATE PROCEDURE pro_name(IN inputName inputType, OUT outputName outputType) BEGIN--sql statement...SELECT ** INTO outputName

IDEA 學習筆記之 Java項目開發深入學習1

java項目 bsp 重構 str 代碼提示 log pan ora tro Java項目開發深入學習(1): 定義編譯輸出路徑: 繼承以上工程配置 重新定義新的項目編譯路徑 添加source目錄:點擊添加,再點擊移除: 編譯項目: 常用快捷鍵總結: Ctr

2018年最新JAVA面試題總結之基礎1

轉自於:https://zhuanlan.zhihu.com/p/39322967   1、JAVA中能建立volatile陣列嗎?volatile能使得一個非原子操作變成原子操作嗎? 回答: 能,Java 中可以建立 volatile 型別陣列,不過只是一個指向陣列的引用,而不是整個陣列。J

Java】「深入理解Java虛擬機器」學習筆記1 - Java語言發展趨勢

這本書寫的比較早,現在這些功能都已經不同程度的實現了。 1、模組化     JDK9之前的版本都是一個整體,使用者可能只需要使用一個小功能,但他不得不下載整個JDK。不能滿足定製化需求,顯然Java語言的發展因此大大受限。   所以,Sun公司在OpenJDK建立了一個Jigsaw(拼圖)的專案來推動模

Mysql資料庫學習1

1、前瞻 今天跌跌撞撞終於把Mysql安裝好了,真尼瑪不容易,各種錯誤;其實只要.msi檔案就足夠了,自己沒有吸取教訓,在下載一個視覺化的Heidisql就OK啦;嗯,最近這段時間在學Mysql,在這裡總結一下自己在學習過程中遇到的問題以及感受。現在又裝了一個Navicat對資料庫的視覺化,啟動

Oracle資料庫複習1

1 查詢員工姓名中含有下劃線的員工 SELECT *FROM emp WHERE ename LIKE '%\_'ESCAPE '\'; 2 order by +多列 則排序結果由第一例決定 且依次受到之後列的影響。 --如:SELECT *FROM emp ORDER BY deptno, em

dubbo其實很簡單,就是一個遠端服務呼叫的框架1

dubbo專題」dubbo其實很簡單,就是一個遠端服務呼叫的框架(1) 一、dubbo是什麼? 1)本質:一個Jar包,一個分散式框架,,一個遠端服務呼叫的分散式框架。 既然是新手教學,肯定很多同學不明白什麼是分散式和遠端服務呼叫,為什麼要分散式,為什麼要遠端呼叫。我簡單畫個對比圖說明(

資料庫基礎1關係的布林運算:資料集的並,交,差,補和有效補運算

關係的布林運算主要包括:並,交,差,廣義笛卡爾積,補,有效補 並集 定義: 關係R和S的並集結果,由屬於R或屬於S的所有元組組成,其結果是一個新關係。記為: Q = R ∪ S = {t | t ∈ R 或 t ∈ S } 例子: 注意! 這個並集求出來是不含重複元組的!

Sql Server資料庫開發1資料庫設計

1.瞭解E-R圖 E-R圖是一種廣泛使用的設計工具,主要用來表示事物、事物的資料和期間的關係資訊。 E-R圖中資訊的三種形式: 1)實體:就是一種物件,若干個具有共同特徵的實體被稱為實體集,實體一般使用名詞。 2)屬性:用來表現實體特徵的一個數據,屬性一般使用

java記憶體模型與執行緒1

一、處理器、快取記憶體、主記憶體之前的互動圖 二、Java記憶體模型 倆張圖之間的關係很清晰 一個處理器對應一個執行緒 一個快取記憶體對應一個工作記憶體 問題的關鍵點就在於:java執行緒之間與工作記憶體打交道,而不是主記憶體,工作記憶體之間沒有直接的關

JAVA——基本資料型別與陣列1

主要內容:1.識別符號與關鍵字;2.基本資料型別;3:型別轉換運算;4:輸入,輸出資料;5陣列 一:識別符號與關鍵字 1.識別符號(只是一個名字):作用:用來標識類名,變數名,方法名,型別名,陣列名,以及檔名的有效字元序列。 2.命名規則:①不能是數字字元開頭;   &nb

django訪問mysql資料庫--模型model

一、安裝:   sudo pip install mysql-connector-python   sudo pip install MySQL-python 異常情況,如果提示pip超時 curl https://bootstrap.pypa.i

java認證筆記-------類和物件1

類和物件思維導圖 類和物件的關係: 類是實體特徵的集合,是對物件的抽象,是一種抽象的資料型別。              物件是一種具體的事物是一個具體的概念。 可以說類是個體抽象的集合,物件是具體具體事物的呈現。例如人類是一個類,小明是一個具有人類特徵的物件。

資料庫筆記1

關於資料庫主鍵和外來鍵 連結 : https://blog.csdn.net/harbor1981/article/details/53449435 比較詳細的講述主鍵和外來鍵,也講解了一些資料庫的設計,比較精華 資料庫三種正規化詳解 連結:https://blog.csdn.n

淘寶JAVA中介軟體Diamond詳解1-簡介&快速使用

感謝有奉獻精神的人 轉自:http://my.oschina.net/u/435621/blog/270483?p=1 淘寶JAVA中介軟體Diamond詳解(一)---簡介&快速使用 大家好,今天開始為大家帶來我們通用產品團隊的產品 —— diamon

資料庫設計1轉載

轉自:https://www.pandashen.com/2018/08/14/20180814131241/ 前言 這是關於 MySQL 系列文章的第三篇,在前兩篇文章 《MySQL —— 資料庫基礎》 和 《MySQL —— SQL 語句總結》 中,主要介紹了一些資料庫的基礎概念、建立表

java web學習心得與總結1——jsp基本語法

java web自學快三個月了,前面的基礎知識都忘了,以後每天寫一篇部落格總結一下. 或者關注下我的新浪微博:Mr翅膀君 一.page指令 1.language屬性 <%@ page language="java" import="java.util.*" page

【代碼筆記】Java文件的輸入輸出1——Java.io包的初步理解

對象 eclips 是什麽 reader optional 傳輸 gre 用戶界面 cep Java裏面文件的輸入輸出全部在java.io包裏面。 Java.io包裏面所有的類都需要掌握。 java.io包裏面所有的東西都在上面了。 包裏面的相關類

Java在linux系統的部署1: 系統環境的安裝——redhat5.4的安裝圖解

最近要在linux環境上部署公司的java程式進行測試,為了方便以後的學習,從今天開始準備把linux系統安裝、oracle11g的安裝,java程式的部署這些關鍵的步驟都記錄下來。 1、 虛擬機器:VartualBox4.3.12 Linux版本:rhel-server-