在JAVA Bean中,我需要访问NotesSession,以便我可以创建一个NotesDirectory并通过RepID打开一个数据库(在SSJS中一直这样做。我的代码包含这个
import lotus.domino.Base;
import lotus.domino.Session;
import lotus.domino.Database;
import lotus.domino.View;
import lotus.domino.Document;
import lotus.domino.NotesException;
import lotus.domino.View;
import lotus.domino.ViewEntry;
import lotus.domino.ViewEntryCollection;
import lotus.domino.NotesException;
import lotus.domino.Directory;
import lotus.domino.NotesFactory;
.....
Session s = NotesFactory.createSession();
db = s.getCurrentDatabase();
它在db = s.CurrentDatabase()上失败。我添加了一些代码并检查了对象“s”,并且基于我的搜索它是null,NotesFactory创建了一个新的NotesSession,我假设它不应该为null。如果我删除对“s”的引用,我可以使代码运行没有错误,但不能做我想要的。 我知道我可以通过
来获取当前的数据库Database db = ExtLibUtil.getCurrentDatabase();
但这并没有解决按副本ID打开目标数据库的问题,我必须稍后在我的代码中执行此操作。
答案 0 :(得分:3)
您希望会话位于当前用户的上下文中。所以只需使用:
ExtlibUtil.getCurrentSession();
检查一些articles from Declan以了解有关XPage中Java的更多信息。
阅读ExlibUtil的来源也很有启发性。它只是变量解析器的包装器。