0

Web からトリガーされたエージェントのクエリ文字列パラメーターを取得しようとしています。

http://myhost/mydb.nsf/myagent?open&reportID=96c6

org.openntf.domino API を使用し、Domino 9 サーバー HF441 および org.openntf.domino.xsp_1.0.0.201309021740 を実行する

私はこの例外を受け取ります:

[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: org.openntf.domino.exceptions.UndefinedDelegateTypeException
[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: org.openntf.domino.utils.Factory.getParentDatabase(Factory.ja)
va:613)
[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: org.openntf.domino.impl.Document.(Document.java:109) で
[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: org.openntf.domino.utils.Factory.fromLotus (Factory.java:251) で
[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: org.openntf.domino.impl.AgentContext.getDocumentContext(Agent) で
Context.java:85)
[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: JavaAgent.NotesMain (JavaAgent.java:25) で
[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: lotus.domino.AgentBase.runNotes (不明なソース)
[0D40:0045-1488] 2013-09-03 12:01:56 HTTP JVM: lotus.domino.NotesThread.run (不明なソース)
import java.io.PrintWriter;
import java.util.Hashtable;

import org.openntf.domino.AgentBase;
import org.openntf.domino.AgentContext;
import org.openntf.domino.Database;
import org.openntf.domino.Document;
import org.openntf.domino.Session;

public class JavaAgent extends AgentBase {

    boolean debug = false;
    PrintWriter pw;

    public void NotesMain() {

        try {
            Session session = getSession();
            AgentContext agentContext = session.getAgentContext();

            pw = getAgentOutput();
            Database reportDB = session.getDatabase(session.getServerName(),
                    "report.nsf");
            Document doc = agentContext.getDocumentContext();
            String qs = doc.getItemValueString("Query_String");
            Hashtable ht = CommonJ.parseQueryString(qs);
            String reportID = (String) ht.get("reportID");

            Document reportDoc = reportDB.getDocumentByID(reportID);
            if (null != reportDoc) {

                String filename = reportDoc.getFirstItem("$File")
                        .getValueString();
                pw.println(reportDoc.getHttpURL() + "/$file/" + filename);
            } else {
                pw.println("<h2>Sorry, report not found!");
            }

        } catch (Exception e) {
            pw.println("<h2>Sorry, report not found!");
            pw.println(e);
            e.printStackTrace();
        }
    }
}
4

1 に答える 1