我在Lotus Domino 9.0 IF5服务器上的Lotus Notes数据库中创建一个servlet。源代码来自教程页面。此外,servlet是在Domino Designer
中开发的这是最重要的源代码:
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import lotus.domino.*;
[...]
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res) {
try {
res.setContentType("text/html");
PrintWriter toBrowser = res.getWriter();
[...]
try {
NotesThread.sinitThread();
Session s = NotesFactory.createSession(); //<== ERROR
Database db = s.getDatabase("","names.nsf");
toBrowser.println(db.getTitle());
[...]
}
catch (NotesException n) {
System.out.println("Exception ID: " + n.id);
System.out.println("Exception description: " + n.text);
n.printStackTrace();
}
[...]
}
catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
当我调用servlet时,我在服务器控制台上收到此消息。
13/08/2014 04:31:43 HTTP JVM: Exception ID: 4493
13/08/2014 04:31:43 HTTP JVM: Exception description: Cannot create a session from an agent
13/08/2014 04:31:43 HTTP JVM: NotesException: Cannot create a session from an agent
13/08/2014 04:31:43 HTTP JVM: at lotus.domino.local.Session.checkSecurityManagerExtender(Unknown Source)
13/08/2014 04:31:43 HTTP JVM: at lotus.domino.local.Session.createSession(Unknown Source)
13/08/2014 04:31:43 HTTP JVM: at lotus.domino.NotesFactory.createSession(Unknown Source)
[...]
如果我编写没有Lotus Notes代码(会话,数据库,文档等)的servlet,它可以正常工作。我可以做我想做的一切我不使用Lotus Domino对象。但是,如果我添加这些行,则会发生错误。
会出现什么问题?
TIA,
修改
它如何在Domino Designer上查看servlet。我在Notes数据库中写了它,没有外部作为独立文件。
答案 0 :(得分:1)
当您致电NotesFactory.createSession()
时,系统会根据需要提示用户输入密码。但似乎提示用户存在一些问题。因此,您必须手动提供UserName
和Password
:
Session s = NotesFactory.createSession(null, "UserName", "Password");
或使用Documentation中提到的其他方法,例如:
Session s = NotesFactory.createSessionWithFullAccess("Password");
//or
Session s = NotesFactory.createSession(null, "", "");
//or
Session s = NotesFactory.createSession(hostString, HttpServletRequest);
//etc