我想通过质子接口从 node.js 运行 Java 代理。可悲的是我无法让代理上下文工作
Node.js 代码
async function callEvalAgent(query) {
const agent = await db.useAgent({ name: "search" });
console.log("got the agent");
const requestDocUNID = await db.createDocument({
document: {
Form: "searchRequest",
query
}
});
console.log("queryDoc created");
console.log(requestDocUNID);
await agent.run({
selection: { search: { query: "Form = 'document'" } },
context: { unid: requestDocUNID }
});
...
}
输出:
got the agent
queryDoc created
B72CA8819EDA0691C1258592003BFBE5
...
代理代码
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Document requestDoc = agentContext.getDocumentContext();
String query = requestDoc.getItemValueString("query");
...
} catch(Exception e) {
System.out.println("bla");
e.printStackTrace();
}
}
}
运行代码时,我得到一个NullPointerException
at
String query = requestDoc.getItemValueString("query");
由于 agentContext 为空,因此在 Domino 服务器上。如果我之后手动检查它,那么我认为具有给定 UNID 的文档会出现在我的视图中。
我做错了什么?使用与此处的 HCL 示例相同的方法