我尝试在 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 代理运行在与 XPage 完全不同的上下文中。它们在两个独立的 JVM 中运行。因此,了解您将无法从您的代理访问您的 XPage 可用的任何类/资源也很重要。
要运行 Java 代码来操作您的文档,您可以使用例如托管 bean,而不是只有“传统”Domino Web 应用程序的打开/保存阶段,您将拥有 JSF 生命周期中的 6 个阶段来与您的数据源交互。这是在 XPage 应用程序中修改数据的更好模式。
当您收到错误 500 时,这意味着服务器端的某些逻辑已失败(例如,在托管 bean 或某些 SSJS 中)。查看此信息的最佳方法是使用 openntf.org 的 XPages LogReader,它将向您显示来自服务器的本地文件的内容以及错误消息(和堆栈跟踪)。
您可以通过许多 NotesIn9 视频序列找到有关如何在 XPages 中使用 Java 的宝贵信息。
关于java - 运行 Java 代理 XPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715904/