1

Lotus ネットワークには複数の Lotus Domino サーバーが含まれています (各組織単位には独自のサーバーがあります)。Server_A に接続してnames.nsfから、次を使用して Server_B から取得しようとしていgetDatabase()ます。

Session session = NotesFactory.createSession("Server_A_IP:63148", superuser, pass);

Database names = session.getDatabase("CN=Server_B/O=Organization", "names.nsf");

私が得るエラー:

Exception in thread "main" NotesException: Database CN=Server_B/O=Organization!!names.nsf has not been opened yet
    at lotus.domino.NotesExceptionHelper.read(Unknown Source)
    at lotus.domino.NotesExceptionHolder._read(Unknown Source)
    at lotus.priv.CORBA.iiop.RepImpl.invoke(Unknown Source)
    at lotus.priv.CORBA.portable.ObjectImpl._invoke(Unknown Source)
    at lotus.domino.corba._IDatabaseStub.searchU(Unknown Source)
    at lotus.domino.cso.Database.search(Unknown Source)
    at lotus.domino.cso.Database.search(Unknown Source)

names.nsf使用して開くことsession.getDatabase(null, "names.nsf");は正常に機能しています。

4

2 に答える 2

0

ここで答えを見つけました:

接続が失敗する理由は、サーバー 1/ACME がドミノ ディレクトリのサーバー 2/ACME のサーバー ドキュメントに信頼サーバーとしてリストされていないためです。

そして解決策:

この問題を解決するのは簡単です。難しかったのは、問題を見つけることでした。Server2/ACME の Domino ディレクトリにアクセスできる場合は、次の手順を実行します。

  • Server2/ACME で Domino ディレクトリ (サーバー アドレス帳) を開きます。
  • [構成] で [サーバー] をクリックし、[すべてのサーバー ドキュメント] をクリックします。
  • コードを接続するサーバー ドキュメントをダブルクリックします。(この例では Server2/ACME)
  • [セキュリティ] タブの左下のセクションに、[信頼できるサーバー] というフィールドがあります。
  • 私のシナリオでは、このフィールドは空です。この例に従って、このフィールドに「Server1/ACME」を追加します。

編集:解決策がコメントにもあることを確認しました。とにかく、誰かにとって役に立つ場合に備えて、この手順をここに残しておきます。

于 2015-04-15T19:25:23.987 に答える
0

NotesFactory.createSession("Server_A_IP:63148", スーパーユーザー, pass);

-> NotesFactory.createSession("Server_A_IP", スーパーユーザー, pass);

ポート番号は必要ありません

http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.designer.domino.main.doc%2FH_EXAMPLE_REGISTERNEWUSER_METHOD_JAVA.htmlを参照してください。

セッションがnullオブジェクトではないこともテストする必要があります... if (session != null){

}

于 2013-10-17T11:59:54.563 に答える