2014-11-03 27 views
1

我嘗試在XPage中運行Java代理。 Agent在beforePageLoad事件中運行以操作當前文檔。運行Java代理XPage

<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的其他事件中運行代理嗎?

回答

3

代理必須有

  • 安全選項「運行的Web用戶」設置
  • 爲目標「無」

由於代理可能與此選項時,它不是好的做法運行在XPage中調用Java代理。在XPage中直接調用/使用Java代碼。

+2

安全選擇「以網絡用戶身份運行」是個問題。但我會嘗試使用Java Bean而不是Notes代理 – poisonedYouth 2014-11-03 15:27:08

4

那麼,你必須意識到的第一件事情是,Java代理運行在與XPage完全不同的環境中。它們在兩個獨立的JVM中運行。因此,瞭解您無法從代理訪問任何可用於XPage的類/資源也很重要。

要運行處理文檔的Java代碼,您可以使用例如託管的bean,而不是隻具有「傳統」Domino Web應用程序的開放/保存階段,您將在JSF生命週期的6個階段與數據源進行交互。這是修改XPages應用程序中數據的更好模式。

當您收到錯誤500時,表示服務器端的某些邏輯失敗(例如,在託管的bean或某個SSJS中)。最好的方法是使用openntf.org的XPages LogReader,它會向服務器顯示帶有錯誤消息(和堆棧跟蹤)的本地文件的內容。

您可以通過許多NotesIn9視頻序列找到有關如何在XPages中使用Java的重要信息。

+0

我第二次約翰推薦 – stwissel 2014-11-03 15:35:11

+0

謝謝!我將搜索notesin9視頻 – poisonedYouth 2014-11-03 15:46:55