0

このスレッドからテスト サーブレットが動作するようになりましたか?

xpagesクライアント側スクリプトと通常のメモフォームからHttpServletクラスを呼び出しますか?

残っている問題は、ログインを求められていることです。しかし、私の最終的なサーブレットは、ログインせずに実行する必要があります。私の acl は、Read public document と Write public documents for anonymous に設定しています。

どうすればよいかわからないのは、サーレットをパブリックアクセスにすることです。他の設計ドキュメントには「パブリック アクセス ユーザーが利用可能」プロパティがありますが、Java ファイルにはそのようなプロパティがありません。これは別の場所に設定されますか?おそらく私の IServletFactory にあるのでしょうか?

4

1 に答える 1

0

以前にログインする必要があった理由はわかりませんが、現在は機能しているようです。必要な唯一のことは、Read Public Public Document が有効になっていることです。

少なくとも一部のサーブレットを非公開にする方法がないように見えるため、これは少し懸念されます。私の場合は問題になりませんが、他の人にとっては問題になる可能性があります。

また、Public Access acl 設定を変更すると、何らかの理由でサーブレットを再構築する必要があるように見えます。そうしないと、サーブレットが実行されません。機会があれば、これらの問題の両方をサポートするメモを含むチケットをオープンします。

サーブレットを実行したい場合は、次の記事をお勧めします。

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 に答える