スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ローカルアクセスアプリケーション: NotesThreadクラスの継承

2009年06月25日 00:17

 ずいぶん間が空いてしまいましたが、Javaを利用したローカルアクセスアプリケーションについての続きです。

前回はsintThread()/stermThread() と言う静的メソッドを利用した方法を紹介しましたが、今回はNotesThreadクラスを継承してマルチスレッド化することまで意識した方法で書き直してみましょう。

前回のトピック
ローカルアクセスアプリケーションに書き換える

クラス名が同じなので、コンパイルや実行用のバッチファイルは以前のまま使えます。
前回同様この方法はローカルアクセス(Notes.jarを使う方法。クライアントがインストールされている必要があります)でしか使用できません。

import lotus.domino.* ;

public class NABTest1 extends NotesThread
{
static String domsrv = "ServerName/Org" ; // server name
static String dbname = "names.nsf"; // database (e.g. mail\\hnagashi.nsf)


public static void main(String args[]){
NABTest1 t = new NABTest1();
t.start();
}
public void runNotes(){
try{
Session s = NotesFactory.createSession() ;
//Session s = NotesFactory.createSessionWithFullAccess();
Database db = s.getDatabase(domsrv, dbname );
if(!db.isOpen()){
db.open();
}
String title = db.getTitle();
String uname = s.getUserName();

System.out.println("UserName: " + uname );
System.out.println("ServerName: " + db.getServer());
System.out.println("Title: " + title);


}catch(NotesException ne){
System.out.println(ne.id + ne.text);
ne.printStackTrace() ;
}catch (Exception e){e.printStackTrace() ;
}

}

}



NotesThreadクラスを継承した場合、Notes関連の処理は、runNotes() と言うメソッドをオーバーライドすることによって処理を書くことが出来ます。main関数ではインスタンス化したあとに、start()メソッドを実行するとここで記述した処理が実行されるのが何となくコードを見ても分かるのではないかと思います。

このように書くと今までの簡単なサンプルコードよりはずっとJavaっぽくなってきますよね。
まだmain関数とNotes関連の処理を行うクラスを分けたりするともっと本格的になると思うのですが、そこは各自の興味にお任せいたします。。。


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://hnagasim.blog8.fc2.com/tb.php/177-9e8acad6
    この記事へのトラックバック


    最新記事


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。