在调试 Java 代理的过程中,Domino 服务器给出的错误信息是这样的:

HTTP JVM: java.lang.NullPointerException
HTTP JVM: at JavaAgent.createYjPDF(Unknown Source)
HTTP JVM: at JavaAgent.NotesMain(Unknown Source)

这一堆的 Unknown Source 让人无从下手。还好这个问题很好解决:在代理属性中勾上如下选项即可(lib 库也是一样的)

结果如下,是不是舒服多了?

HTTP JVM: java.lang.NullPointerException
HTTP JVM: at JavaAgent.createYjPDF(JavaAgent.java:674)
HTTP JVM: at JavaAgent.NotesMain(JavaAgent.java:134)

在开发过程中我们经常使用 msgbox 语句来调试代理,由于种种原因有时这些调试语句会被带入测试/生产环境。这种问题一旦发生,一般来说很难定位它究竟来自哪个代理。

此时我们可以在 notes.ini 中添加

Debug_Agent_Thread=1

参数来打开 Web 代理调试功能,在代理开始和结束时,控制台会打印出代理的名称、所在数据库以及 thread id。有了这些信息,我们就很容易定位调试语句的来源了。

请参考:Lotus Notes.ini Entry – Debug_Agent_Thread