我尝试在XPage中运行Java代理。代理在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的其他事件中运行代理?
答案 0 :(得分:5)
嗯,首先要注意的是Java代理在与XPage完全不同的上下文中运行。它们运行在两个独立的JVM中。因此,了解您无法访问代理商可用于XPage的任何类/资源也很重要。
要运行操作文档的Java代码,您可以使用例如托管bean而不仅仅是传统的&#34;传统&#34; Domino Web应用程序您将在JSF生命周期中拥有6个阶段来与数据源进行交互。这是在XPage应用程序中修改数据的更好模式。
当您收到错误500时,表示服务器端的某些逻辑失败(例如,在托管bean或某些SSJS中)。查看此问题的最佳方法是使用openntf.org中的XPages LogReader,它将显示服务器中带有错误消息(和堆栈跟踪)的本地文件的内容。
您可以通过许多NotesIn9视频序列找到有关如何在XPage中使用Java的重要信息。
答案 1 :(得分:3)
代理商必须
由于代理可能使用此选项运行,因此在XPage中调用Java代理并不是一种好习惯。最好直接在XPage中调用/使用Java代码。