【问题标题】:Run Java Agent XPage运行 Java 代理 XPage
【发布时间】:2014-11-03 14:02:53
【问题描述】:

我尝试在 XPage 中运行 Java 代理。 Agent 在 beforePageLoad 事件中运行以操作当前文档。

 <xp:this.beforePageLoad><![CDATA[#{javascript:
          var agent:NotesAgent =database.getAgent("RedirectGroups")
          agent.runWithDocumentContext(currentDocument.getDocument())
    }]]></xp:this.beforePageLoad>

为了测试代理向控制台打印一条简单的消息。

如果我在浏览器中运行 XPage,我会收到错误 500 消息。我在 Domino 9 服务器上使用 Notes 9.01

我是否必须在 XPage 的其他事件中运行代理?

【问题讨论】:

    标签: java xpages agent


    【解决方案1】:

    嗯,首先您必须意识到 Java 代理在与 XPage 完全不同的上下文中运行。它们在两个独立的 JVM 中运行。因此,了解您将无法从您的代理访问任何可用于您的 XPage 的类/资源也很重要。

    要运行处理您的文档的 Java 代码,您可以使用例如托管 bean,而不仅仅是“传统”Domino Web 应用程序的打开/保存阶段,您将在 JSF 生命周期中有 6 个阶段与您的数据源进行交互。这是在 XPages 应用程序中修改数据的更好模式。

    当您收到错误 500 时,这意味着服务器端的某些逻辑已失败(例如,在托管 bean 或某些 SSJS 中)。查看这一点的最佳方法是使用 openntf.org 的 XPages LogReader,它将向您显示来自服务器的本地文件的内容以及错误消息(和堆栈跟踪)。

    您可以通过一些 NotesIn9 视频序列找到有关如何在 XPages 中使用 Java 的宝贵信息。

    【讨论】:

    • 我第二次约翰斯推荐
    • 谢谢!我会搜索notesin9视频
    【解决方案2】:

    代理必须有

    • 安全选项“以 Web 用户身份运行”设置
    • 作为目标“无”

    由于代理可能使用此选项运行,因此在 XPage 中调用 Java 代理不是一个好习惯。更好地直接在 XPage 中调用/使用 Java 代码。

    【讨论】:

    • 安全选项“以 Web 用户身份运行”是问题所在。但我会尝试使用 Java Bean 而不是 notes 代理
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多