我有一个在 LotusScript 中运行的 Web 代理,但它需要通过 LS2J 调用 java 方法。目的是打印一些内容,为此我需要访问打印人员。文档指出我使用
getAgentOutput()
但这会引发空指针异常。课程结构如下:
import java.io.PrintWriter;
import lotus.domino.*;
public class WebPrinter extends AgentBase {
public boolean printFile(String fileName) {
try {
PrintWriter pw = getAgentOutput(); <--- error here
...
} catch(Exception e) {
...
}
}
调用它的lotusscript如下:
Use "JavaWebCode"
Dim jSession As New JavaSession
Dim jClass As JavaClass
Dim jObject As JavaObject
Set jClass = jSession.Getclass("com.test.WebPrinter")
Set jObject = jClass.Createobject()
result = jObject.printFile(fileName)
...
错误是:
java.lang.NullPointerException 位于 Lotus.domino.AgentBase.getAgentOutput(来源未知)
如何在 Java 代理之外访问 PrintWriter?如果可以的话,我真的不想将 LotusScript 代理重构为 Java。
谢谢大家。
LotusScript 代理无法通过 LS2J 使用 AgentBase。它仅在服务器启动 Java 代理时实例化。