Domino の Java プログラム 講座 (初級編 サーブレットからのアクセス)

ドミノにアクセスするサーブレットです。

SimpleDominoAccessServlet という名前で、ドミノサーバーにアクセスするだけのサーブレットです。
サーバー文書の[セキュリティ]タブで「制限付き Java/Javascript/COM の実行」と「制限なし Java/Javascript/COM の実行」にここでアクセスするユーザーを登録して置いてください。(登録を忘れると NotesException で 4488 が返ってきます。意味はこちら)

WebSphere からドミノ・オブジェクトへのアクセスということで、lotus.domino.* のクラスをアクセスするために ncsow.jar をクラスパスに入れておく必要があります。いくつかやり方があると思いますが、今回は Web モジュールのクラスパスに設定しています。やり方はこちらをご覧下さい。

ユーザー/パスワードはパラメーターで受け取るようにしています。
(時々、Javaでのドミノのコーディング例でローカルアクセスしているものがありますが、サーバーIDでのアクセスになりますので実用上たいへん問題があります。マルチスレッドで実行できないので拡張性にも問題がありますし、制約になります。何を考えているんでしょうか?!)

import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import lotus.domino.*;

public class SimpleDominoAccessServlet extends HttpServlet {

public SimpleDominoAccessServlet() {}

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doService(req, res); }

public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doService(req, res); }

public void init()
throws ServletException {
super.init();
System.out.println("init"); }

public void doService(HttpServletRequest req, HttpServletResponse res)
{
String msg = null;

try {
System.out.println("Going to create session");
String server = req.getServerName();
String user = req.getParameter("user");
String password = req.getParameter("password");
Session session = NotesFactory.createSession(server, user, password);
msg = "<br>" + "こんにちは! " + session.getUserName() + "さん!" ;
session.recycle();
}
catch (NotesException e) {
System.out.println("Exception when create session");
msg = e.id + " " + e.text + "occured";
e.printStackTrace(); }
finally {
sendResponse(res, msg);
}
}

public void sendResponse(HttpServletResponse res, String entity) {
try {
PrintWriter pw = null;
res.setContentType("text/html; charset=Cp943c");
pw = res.getWriter();
pw.println("<html><body><h2>");
pw.println(entity);
pw.println("</h2></body></html>");
}
catch (Exception e) { e.printStackTrace(); }
}
}

ブラウザーから

http://(ホスト名)/servlet/SimpleDominoAccessServlet?user=(ユーザー名)&password=(インターネットパスワード)

のようにアクセスします。

例えば以下のように作成したユーザーの場合

こんなふうになります。

サーバー文書の設定を忘れたり、パラメーターを間違えると以下のような返り値が戻ってきます。

 public static final int NOTES_ERR_INVALID_USERNAME_PASSWD = (int)(4486);
 public static final int NOTES_ERR_INVALID_USERNAME = (int)(4487);
 public static final int NOTES_ERR_SERVER_ACCESS_DENIED = (int)(4488);
 public static final int NOTES_ERR_NO_SERVER = (int)(4489);

[Top Pageに戻る]

Ads by TOK2