【问题标题】:Import server side javascript script library from external nsf in an XPage从 XPage 中的外部 nsf 导入服务器端 javascript 脚本库
【发布时间】:2015-04-02 14:17:29
【问题描述】:

我正在尝试找到一种方法来从外部 nsf 应用程序(在同一个或另一个 domino 服务器中)引用服务器端 jss 文件。

我访问了一个 xpage,然后访问了它的资源属性。我选择导入一个脚本库,然后在弹出窗口中,我在下拉菜单中选择了“服务器端”,最后我尝试猜测一个可以工作的 url。

我知道它不像客户端 javascript 那样工作,因为 csjs 只是浏览器解析的文本。但我不明白为什么 xpage 不能从 url 中检索 jss,然后加载并解析它,就好像它是本地的一样......

是否可以从另一个 nsf 加载 jss?

【问题讨论】:

  • 如果您要链接的代码值得,请使用 Java 和 OSGi 或 JAR。

标签: xpages lotus-notes lotus-domino serverside-javascript


【解决方案1】:

我认为这在 NSF 内是不可能的。我认为问题在于您将其与客户端 JavaScript 脚本库的过程进行比较,而不是与服务器端资源进行比较,因此认为它比技术上需要的更简单。您不能从另一个 NSF 加载 Java 类,也不能(轻松)加载 XPage 或自定义控件。每个 NSF 在其自己的 JVM 中运行,因此可能还需要启动外部数据库的 XPages 运行时以加载 SSJS 脚本库。 SSJS 脚本库可以引用其他库、Java 类、托管 bean、变量等,并且检索这些将失败,因为 SSJS 脚本库将从数据库 A 中以纯文本形式检索(记住它只是运行时的代码)并在数据库 B 的上下文。我认为它的复杂程度足以使其几乎无法支持,特别是当它可以在自 8.5.2 以来的插件中完成时,它会更加独立。

我已尝试通过后端 HTTP 会话访问资源,但您仍需要对服务器进行身份验证 - 它不会自动传递登录凭据或使用服务器访问权限。因此,这可能也是(以某种方式)必须克服的障碍。

我相信 Jesse Gallagher 已经设法通过 OpenNTF Domino API 从另一个数据库加载 XPage 或自定义控件,但我不认为这是推荐的方法。我怀疑他用它来尝试加载 SSJS 库。您也可能会遇到问题,因为代码位于不同的 JVM 中。

基本上,要从多个 NSF 访问相同的 SSJS,它需要位于 NSF 之上的服务器层次结构的级别,因此在 OSGi 插件中。但是,如果它是供您自己使用的代码,那么到那时,您很可能会编写 Java 而不是 SSJS。

此时最好的选择是复制粘贴或从模板继承。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多