0

我终于让我的测试 servlet 从这个线程工作了?

从 xpages 客户端脚本和常规注释表单调用 HttpServlet 类?

剩下的问题是我被要求登录。但是我的最终 servlet 需要在不登录的情况下运行。我将我的 acl 设置为读取公共文档和为匿名写入公共文档。

我不知道该怎么做是让 serlet 公开访问。其他设计文档具有“可供公共访问用户使用”属性,但我没有看到 java 文件的此类属性。这会设置在其他地方吗?也许在我的 IServletFactory 中?

4

1 回答 1

0

我不知道为什么我之前需要登录,但看起来它现在正在工作。唯一需要的是启用读取公共公共文档。

这有点令人担忧,因为至少看起来没有办法让一些 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);
 } 

}
于 2013-03-08T16:33:16.630 回答