0
Updated Question

こんにちは、質問を更新しています。jcifs api を使用して SUSE サーバーから .nsf ファイルにアクセスしています。正常にアクセスされていますが、このパスを getDatabase() メソッドに渡そうとすると、データベースを開くことができません。このディレクトリとファイルは共有としてアクセスできるため、問題はありません

SmbFile sFile = new SmbFile(path,auth);

ここで、ファイルが利用可能かどうかを確認し、この静的パスを指定します

if(sFile.isFile()){
    Database database = s.getDatabase ("", sFile.getPath());
}

前もって感謝します。

4

2 に答える 2

4

お客様がLotusDominoサーバーを実行している場合は、ファイルオブジェクトとしてデータベースにアクセスしようとしないでください。次のようなものを使用する必要があります。

Database db = s.getDatbase("server name/organization name", "path/test.nsf"

Dominoサーバーの管理者から「サーバー名/組織名」の文字列を取得する必要があります。パスはDominoサーバーのルートデータディレクトリからの相対パスである必要があります。または、次のようなものを使用できます。

DbDirectory dbDir = s.getDbDirectory("server name/organization name") 

次に、DbDirectoryクラスのメソッドを使用して、必要な特定のデータベースを見つけることができます。

さらに情報を追加するために編集:

Lotus Notes APIには、20年以上にわたって実装されている、独自の抽象ファイル名形式があることを知っておくと便利です。この形式は次のようになります。

"CN=Domino server name/O=organization name!!folder path/test.nsf"

この形式を使用する場合、データベースがDominoサーバーでホストされている場合でも、getDatabase()の最初の引数を空白のままにすることができます。Notes APIはOS固有の形式の問題を処理しますが、APIが処理できないことが1つあります。パスとファイルコンポーネントはWindowsでは大文字と小文字を区別しませんが、Linuxでは大文字と小文字を区別します。 。そしてそれについて考えると...これはあなたの問題にさえ関係しているかもしれません。実際のファイル名が「test.nsf」ではなく「Test.nsf」の場合、問題が発生しますが、FileNotFoundExceptionではなくNotesExceptionになると確信しているため、おそらく関連性はありません。

于 2012-08-30T22:12:06.537 に答える
0

他のコンピューターのファイルにアクセスするには、そのための適切なアクセス許可が必要です。そのため、共有フォルダーを使用することをお勧めします。もちろん、リモートマシンにある種のサーバーを定義し、そのルートの下にファイルを保存するオプションがある場合は、特別な権限なしでファイルにアクセスできます(例:リモートマシンにSFTPサーバーを定義し、ファイルを下に保存する彼のルート、ユーザーコンピュータから接続し、ファイルを取得します)

于 2012-08-30T12:33:12.260 に答える