我正在使用带有标准文件上传控件的 XPage 上传文件。在数据源上,我有一个 WebQuerySave 代理。
WQS-agent 在 LotusScript 中。
用户正在上传一个 XML 文件,我们有一个现有的帮助程序库来帮助解析正在上传的 XML - 这就是 WQS 在 LotusScript 中的原因。
由于我无法将上传的文件分离到服务器,我正在调用 Java 代理来将 XML 读取为字符串并将其存储在文档中。
我正在使用参数文档调用 Java 代理,所有基本内容。
在参数文档中,我包含了包含附件的文档的 UniversalID,这是我的问题!
Java 代理声称 UniversalID 无效:
“HTTP JVM:4091 无效的通用 ID”
但是,如果我尝试在 LotusScript 代理中查找文档,则在调用 Java 代理之前使用相同的 UNID 找到该文档: Set tempDoc = db.Getdocumentbyunid(unid)
Java 代码:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import lotus.domino.Agent;
import lotus.domino.AgentBase;
import lotus.domino.AgentContext;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.NotesException;
import lotus.domino.Session;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
// Get document used for passing data
System.out.println(agent.getParameterDocID());
Document paramDoc = db.getDocumentByID(agent.getParameterDocID());
String UniversalID = paramDoc.getItemValueString("unid");
System.out.println(UniversalID);
Document doc = db.getDocumentByUNID(UniversalID);
当我运行 Java 代理时,我不会从打印命令中得到任何东西,但也许这是意料之中的......(?)
如果我在现有文档上手动运行所有内容,它就可以工作。但不是通过浏览器提交的文件。
对我来说,感觉包含附件的文档还没有准备好用于 Java。
多米诺骨牌 8.5.3
非常感谢任何帮助!
/J
PS我是Java新手,所以你知道.. ;-)