运行Java Agent XPage

时间:2014-11-03 14:02:53

标签: java xpages agent

我尝试在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的其他事件中运行代理?

2 个答案:

答案 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)

代理商必须

  • 安全选项“以Web用户身份运行”设置
  • as Target“None”

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