我终于让我的测试servlet在这个线程中运行了吗?
Calling HttpServlet class from xpages client side script and regular notes forms?
剩下的问题是我被要求登录。但是我的最终servlet需要在没有登录的情况下运行。我将我的acl设置为Read public document和Write public documents for anonymous。
我不知道该怎么做才能使serlet公共访问。其他设计文档具有“可用于公共访问用户”属性,但我看不到java文件的此类属性。这会被设置在其他地方吗?也许在我的IServletFactory中呢?
答案 0 :(得分:0)
我不知道为什么我之前需要登录,但看起来它现在正在运行。唯一需要的是启用Read Public Public Document。
这有点令人担忧,因为它至少看起来没有办法使一些servlet非公开。就我而言,这不会是一个问题,但对其他人来说可能是一个问题。
另外我注意到,如果你更改了公共访问acl设置,看起来你需要因某种原因重建你的servlet,否则servlet将无法运行。当我有机会的时候,我会打开一张票据支持这两个问题。
对于那些想要执行servlet的人,我建议这篇文章:
http://8b30b0.wordpress.com/2013/02/04/creating-a-basic-domino-servlet/#comments
但是这里有一个更简化的IServletFactory版本,可能更容易理解并且可以正常工作。
package test;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import com.ibm.designer.runtime.domino.adapter.ComponentModule;
import com.ibm.designer.runtime.domino.adapter.IServletFactory;
import com.ibm.designer.runtime.domino.adapter.ServletMatch;
public class TestFactory implements IServletFactory {
private ComponentModule module;
public ServletMatch getServletMatch(String contextPath, String path)
throws ServletException {
System.out.println("TestFactory:getServletMatch");
String servletPath = "";
String pathInfo = path;
return new ServletMatch(getWidgetServlet(),servletPath,pathInfo);
}
public void init(ComponentModule arg0) {
System.out.println("TestFactory:init");
this.module = arg0;
}
public Servlet getWidgetServlet() throws ServletException {
return module.createServlet("com.pnc.cld.HelloWorld", "testServlet",null);
}
}