基于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手动导入它。
我希望有人有个主意。任何帮助将不胜感激。
提前致谢。
的Matthias
答案 0 :(得分:3)
请检查您的ACL设置: “最大互联网名称和密码”是否设置为“经理”或“设计师”?