2

在我开发的生产应用程序中,有时我会收到一条错误消息,指出 .getDocument() 为空。我在我的代码中添加了检查,如果发生这种情况会捕获错误。奇怪的是 XSPDocument 接缝没问题。

还有其他想法如何调试导致此问题的原因吗?

==================================================== ======

编辑

应用程序的下部是一个简单的数据库,创建一个分配它获取状态新的状态,通过一个按钮将状态更改为正在进行。在文本、日期和数字字段中添加信息,没有 Richtext,没有附件。

用户可以切换到另一个 xpage 以发送此文档是电子邮件中的 pdf 附件。

用户可以将文档保存为草稿

完成后,单击批准按钮,此按钮将状态设置为已批准。保存文档并将其以 pdf 格式发送到电子邮件地址

该问题出现在“保存”按钮和“批准”按钮上。

xsp 文档中的 .getDocument 为 null xspdocument.getNoteID 返回一个 ID,我可以在 xsp 文档上执行 replaceitemvalue。它永远不会发生在仅存在于我所见的新文件上

感觉就像大卫的评论,后端文档被丢弃/回收

4

3 回答 3

0

在不了解其他所有内容的情况下很难给出提示,但我记得我也看过这个。只是一些想法:如果发生这种情况,XSPDocument.getNoteID() 是否指向一个有效的文档?它是否可能指向与您预期不同的文档?数据源是否会发生某种动态变化?也许某种超时让服务器突然忘记了你是谁(在极少数情况下这发生在我身上)?洛萨/edcom

于 2013-03-12T07:05:24.397 回答
0

我们最近遇到了同样的 getDocument() 问题。最后我们找到了根本原因:通过 iFrame 同时加载了两个不同的 XPage。在 25% 的情况下,其中一个 XPage 会随机产生运行时错误。单会话上下文中 JSF 模型中的一种冲突。

解决方案:viewState="nostate"

不确定它是否对您的情况有所帮助,但此选项解决了我们应用程序中的许多问题。它是在 8.5.3 中引入的。它对所谓的 XAgent 应该特别有用。

于 2013-03-12T12:19:09.237 回答
0

了解更多细节会很有帮助。我假设该文档以前已保存并且不是新笔记?

您不是想将实际的文档对象放在作用域变量中吗?那会很糟糕,因为那会非常有毒。在不知道更多的情况下,我认为可能是这种情况。后端文档已被垃圾回收。

于 2013-03-13T17:35:04.870 回答