JavaベースのDXLインポートに問題があります。
Javaフレームワークを介してプロパティファイルを維持したいと考えています。ファイルシステムで一時ファイルを使用しています(ローカルサーバーで作業しています)。新しいプロパティファイルをファイルシステムにエクスポートし、同じフォルダーにDXLファイルを生成してから、DXLをデータベースにインポートしようとしています。
インポーターのいくつかのオプションを実行し、sessionAsSignerWithFullAccessを使用してストリームとインポーターを作成しています。コードは、すべてにフルアクセスできるサーバー管理者のIDで署名されています。
DXLをインポートすると、「DXLインポート操作に失敗しました」というエラーメッセージのみが表示されますが、インポーターのエラーログには、この操作を実行する権限がないことが示されています。
何が問題になるのか分かりますか?私の観点からは、サーバーに対するこれ以上の権限をユーザーに与えることはできません。
インポート関数のコードは次のとおりです。
private void importDXLFile(String filepath) {
String dxlPath = filepath.replaceAll(".properties", ".dxl");
DxlImporter importer = null;
Stream stream = null;
System.out.println("dxlPath: " + dxlPath);
try {
stream = BCCJsfUtil.getCurrentSessionAsSignerWithFullAccess(FacesContextEx.getCurrentInstance()).createStream();
if (!stream.open(dxlPath, "ISO-8859-1")) {
System.out.println("Cannot read " + dxlPath + " from server");
}
System.out.println("User: " + BCCJsfUtil.getCurrentSessionAsSignerWithFullAccess(FacesContextEx.getCurrentInstance()).getEffectiveUserName());
importer = BCCJsfUtil.getCurrentSessionAsSignerWithFullAccess(FacesContextEx.getCurrentInstance()).createDxlImporter();
importer.setReplaceDbProperties(false);
importer.setReplicaRequiredForReplaceOrUpdate(false);
importer.setDesignImportOption(DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE);
importer.setInputValidationOption(DxlImporter.DXLVALIDATIONOPTION_VALIDATE_NEVER);
importer.setExitOnFirstFatalError(false);
importer.importDxl(stream.readText(), BCCJsfUtil.getCurrentDatabase());
stream.close();
} catch (NotesException e) {
e.printStackTrace();
try {
System.out.println("Log: " + importer.getLog());
System.out.println("LogComment: " + importer.getLogComment());
} catch (NotesException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
ご覧のとおり、私はいくつかのオプションを試しましたが、それが何かを変えることを期待していますが、それは常に同じエラーメッセージです。生成されたDXLは、Ytriaを使用して手動でインポートできるため、有効なようです。
誰かがアイデアを持っていることを願っています。どんな助けでもいただければ幸いです。
前もって感謝します。
マティアス