gpt4 book ai didi

java - getDocumentContext() 上的 org.openntf.domino 异常

转载 作者:行者123 更新时间:2023-12-01 14:10:04 24 4
gpt4 key购买 nike

我正在尝试获取从网络触发的代理的查询字符串参数:

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:        at org.openntf.domino.utils.Factory.getParentDatabase(Factory.java:613)[0D40:0045-1488] 2013-09-03 12:01:56   HTTP JVM:        at org.openntf.domino.impl.Document.(Document.java:109)[0D40:0045-1488] 2013-09-03 12:01:56   HTTP JVM:        at org.openntf.domino.utils.Factory.fromLotus(Factory.java:251)[0D40:0045-1488] 2013-09-03 12:01:56   HTTP JVM:        at org.openntf.domino.impl.AgentContext.getDocumentContext(AgentContext.java:85)[0D40:0045-1488] 2013-09-03 12:01:56   HTTP JVM:        at JavaAgent.NotesMain(JavaAgent.java:25)[0D40:0045-1488] 2013-09-03 12:01:56   HTTP JVM:        at lotus.domino.AgentBase.runNotes(Unknown Source)[0D40:0045-1488] 2013-09-03 12:01:56   HTTP JVM:        at lotus.domino.NotesThread.run(Unknown Source)
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();
}
}
}

最佳答案

我已在当前​​分支中修复了此问题。如果您准备自己从源代码进行修改和构建,则更改如下:

https://github.com/OpenNTF/org.openntf.domino/commit/08d48763c22c6cdbb411d37e792a80c84e56eb34

具体来说,在 org.openntf.domino.impl.AgentContext 的“getCurrentDatabase”方法中,将“fromLotus”调用中的最后一个“this”更改为“getCurrentDatabase()”。

或者,我从我的开发环境导出一个 jar,在我的测试中修复它(这基本上是 M3 加上设计树中的一些工作以及此修复):

https://dl.dropboxusercontent.com/u/23599916/org.openntf.domino-jesse-20130903.jar

如果您仍然遇到麻烦,请告诉我!

关于java - getDocumentContext() 上的 org.openntf.domino 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com