2014-04-23 70 views
1

我能夠調用Java代理SSJS用下面的代碼從Java類調用Java代理:XPages中

var db:NotesDatabase = session.getCurrentDatabase(); 
var agent:NotesAgent = db.getAgent("AgentName"); 
agent.run(); 

但是我想要做的是調用Java代理從Java類?這可能嗎?感謝您的任何提示。

+0

這當然是可能的。您只需將您的SSJS代碼轉換爲等效的java代碼 –

回答

2

有趣的挑戰在於掌握Java類中的會話和/或數據庫。這個類可以在你的NSF中,在一個插件中,或者在jvm/lib/ext中的jar中。

你不想依賴它來自哪裏,所以你使用依賴注入爲他們提供(這是一個奇特的一句話:提供如參數)類似:

public class Leon implements Serializable { 

     public void cleanerDoYourWork(Database db) { 
      Agent theProfessional = db.getAgent("acidAndGuns"); 
      theProfessional.run(); 
      theProfessional.recycle(); 
     } 
    } 

如果您不明白這個雙關語,搜索IMDB萊昂:-)

備註:在SSJS你不需要session.getCurrentDatabase();,它已經在那裏爲「數據庫」

+0

+1以供參考:-) –

+0

我認爲存在一個錯誤。不應該是Leon implements SerialKiller :-) – stwissel