Lotus Domino DesignerでのJavaプログラミング

Domino DesignerはEclipseベースなため、Notes DBだけでなく、Javaのプロジェクトを作成することが可能になっている。また、Dominoのライブラリをクラスパスに追加するとDIIOPでDominoサーバに接続できる。

まずはDominoのJAVAクラスライブラリを使用するためにDesignerのクラスパスを追加しておく。

<Domino Designerの事前設定>
  1. [File] - [Preferences]を開く
  2. [Java] - [Build Path] - [Classpath Variable]を開く
  3. "New"ボタンでNCSO.jarを追加する。  
  4. [NCSO.jarのパス]: {Notes Dataフォルダ}\domino\java\NCSO.jar
次にブログラムを作成するプロジェクトを作成する。

※どうやらデフォルトでNotes.jarファイルがクラスパスに登録されているため不要の模様。

Notes DBはJavaパースペクティブで見ると一つのプロジェクトとして扱われいる模様。プロジェクトの中にCode/Javaというソースフォルダがあったためそこにクラスを作成して実行してみたところmain関数の呼び出しでClassLoaderがNoClassDefFoundErrorでエラーになってしまう。

Java Agentを作成すれば実行できるが、いろいろなアプリで使いそうなライブラリを作成したかったので独立したプロジェクトを作成する。

<Domino DesignerでのJavaプロジェクト作成手順>
  1. [File] - [New] - [Java Project]で新しいプロジェクトを作成画面を表示
  2. プロジェクト名を指定し、"Next >" "Finish"ボタンをクリック
  3. [Java Settings]が表示されるので[Libraries]タブを表示する
  4. "Add Variable..."をクリックしNCSO.jarを追加し"Finish"ボタンをクリック
プログラム中でNotesFactoryを使うとDominoのSessionクラスのインスタンスを取得できる。このSessionクラスからDatabaseインスタンスなどを取得し操作する。

<Sessionインスタンスの取得方法>
  1. "lotus.domino.*;"をインポート
  2. NotesFactory.createSession()でSessionインスタンスを取得
    e.g. Session session = NotesFactory("[ServerHostName]:[DIIOP Port]", "[UserName]", "Password");
    ServerHostName
    サーバのホスト名もしくはIPアドレス
    DIIOP Port
    DIIOPのアクセスポート番号
    UserName
    ユーザ名e.g. Taro Tanaka/CORP
    Password
    ユーザのインターネットパスワード