【问题标题】:Import SSJS script library using DXL in a database在数据库中使用 DXL 导入 SSJS 脚本库
【发布时间】:2012-03-27 14:13:36
【问题描述】:

我们需要使用 DXL 在数据库中导入一个 SSJS 库。为此,我们编写了一个 Java 代理,其代码如下所示:

import lotus.domino.*;
public class JavaAgent extends AgentBase {
    private DxlImporter importer = null;
    public void NotesMain() {
        try {
            Session session = getSession();
            AgentContext agentContext = session.getAgentContext();

            String filename = "C:\\tempssjslib.xml";

            Stream stream = session.createStream();
            if (stream.open(filename) & (stream.getBytes() > 0)) {
                Database importdb = session.getCurrentDatabase();
                importer = session.createDxlImporter();
                importer.setReplaceDbProperties(true);
                importer.setReplicaRequiredForReplaceOrUpdate(false);
                importer.setAclImportOption(DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_IGNORE);
                importer.setDesignImportOption(DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE);
                importer.importDxl(stream, importdb);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } 
        finally {
            try {
                System.out.println(importer.getLog());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

C:\tempssjslib.xml 文件包含我在 Domino Designer 中创建的 SSJS 库,然后使用“Tools > DXL Utilities > Exporter”(用于测试目的)导出。但是当我运行这个代理库时,not 会被导入到数据库中。 DxlImporter.getLog() 也没有错误。

我用 XPages、Form、LotusScript 脚本库尝试了类似的过程,并成功地导入了它们。但同一代理无法导入 SSJS 库。

我在代码中遗漏了什么吗?我们可以使用 DXL 将 SSJS 库导入数据库吗?

【问题讨论】:

    标签: java lotus-notes xpages


    【解决方案1】:

    看起来导出器工具(或者甚至可能是 DXLexporter)没有导出所有需要的字段。如果您在 dxl 文件中手动添加它,就在 item name='$ServerJavaScriptLibrary'... 行之前,它将成功导入。

    <item name='$Flags'><text>.5834Q</text></item>
    <item name='$TITLE'><text>...name of the SSJS library...</text></item>
    

    【讨论】:

    • 感谢 Ferry 提供的确切代码。它也可以通过仅包含 $Flags 的标签来工作。
    【解决方案2】:

    如果您打印导入的便笺 ID 并在适当的工具(Ytria 或 Notespeek)中对其进行分析,您会发现问题出在 $Flags 字段上。

    我创建了一个测试 SSJS 库,并且 $Flags 字段包含“.5834Q”。但是进口的只有“34Q”。

    我没有这些标志的确切参考,但这可能是一个好的开始。手动覆盖此字段可以成功,但此标志可能包含一些有价值的信息。

    对我来说这似乎是一个错误。

    此外,YTria 工具对 $flags 字段内容有很好的参考。

    【讨论】:

    • 是的,导出文件中缺少 $flags 字段。该引用应该适用于所有 SSJS 库。
    • 感谢 Serder 和 Ferry。 $Flags 字段确实是问题所在。
    【解决方案3】:

    使用 OpenNTF 上的 Import/Export 插件让您的生活更轻松:http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-7YAAF6 它有一个 ANT API,因此您可以自动化操作。需要 Domino Designer,因此它可能不适合您的用例。或者(尚未检查):您是否查看过 webDAV 是否​​公开了脚本库?

    【讨论】:

      猜你喜欢
      • 2016-01-20
      • 1970-01-01
      • 2022-11-09
      • 2021-04-24
      • 2013-12-07
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多