【问题标题】:Unespected runtime Error when try to send document尝试发送文档时出现意外的运行时错误
【发布时间】:2023-04-03 20:34:01
【问题描述】:

我有新的 Lotus Domino Server 8.5.3 FP1 UP1(Windows 2008 64 位)。

我创建了一个从发送邮件的帮助中复制的 xpages 示例。

var doc:NotesDocument = database.createDocument();
doc.replaceItemValue("form", "Memo");
doc.replaceItemValue("sendTo", "daniel.recio@slug.es");
doc.replaceItemValue("subject", "hi there!");
doc.replaceItemValue("body", "content here");
doc.send();

但我有未预料到的运行时错误

执行 JavaScript 动作表达式时出错 脚本解释器错误,line=6,col=5:[TypeError] 调用方法发生异常 NotesDocument.send() null

▼ 堆栈跟踪 javax.faces.FacesException:执行 JavaScript 动作表达式时出错 com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:102) com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96) com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:250)

我已经完全卸载了这台服务器,然后重新安装了同样的错误。

在其他测试服务器上工作,但在这个服务器上,我的莲花设计器是 8.5.2 + Ext Lib,现在是 8.5.3 FP1 UP1。

你能帮我吗?

谢谢大家

【问题讨论】:

    标签: xpages xpages-ssjs


    【解决方案1】:

    该错误可能是因为服务器无法实际发送消息。服务器端,当服务器无法路由消息时,会导致异常。确保您的服务器可以自行成功路由邮件消息,然后您的错误可能会消失。

    【讨论】:

    • 谢谢,但是如果我打开 Inotes 邮箱,我可以向 adyacent 域和非 adyacents 域发送邮件、内部和外部。我输了
    • 这并不一定意味着服务器实际上可以发送邮件。它有区别,但很微妙。写一个lotus脚本代理,用同样的方式发送消息,看看是否发送成功。
    • 谢谢,明天我会写lotusscript代理并反馈。
    • 已解决,非常感谢。问题是服务器不能自行解析,因为 DNS 指向其他 IP。当我用他的 IP 更改 SMTPFULLHOSTNAME notes.ini(文档服务器中的端口选项卡和基本选项卡中的主机名)时,一切正常(lotusScript 和 Xpages)。
    【解决方案2】:

    检查 ACL 并确保您(或匿名,如果您以匿名方式进行测试)有权创建文档。我的猜测是这就是导致 NotesDocument 为空的原因。

    此外,请查看位于 Domino 数据目录中的 /domino/workspace/logs/error-log-0.xml 文件以了解有关错误的更多说明。

    【讨论】:

    • 感谢您的回复,但是 ACL 有匿名管理器、默认管理器,并且 error-log-0.xml 只有与堆栈跟踪相同的错误
    • 无需卸载重装服务器。尝试为匿名创建一个具有完全访问权限的新空白数据库,并添加一个带有仅执行邮件发送逻辑的按钮的 XPage。
    • 谢谢,我试过了,我上传了我的自定义文件发送数据库(在其他服务器上工作)和标准文件发送数据库。 .send 方法也有同样的错误。
    • 已解决,非常感谢。问题是服务器不能自行解析,因为 DNS 指向其他 IP。当我用他的 IP 更改 SMTPFULLHOSTNAME notes.ini(文档服务器中的端口选项卡和基本选项卡中的主机名)时,一切正常(lotusScript 和 Xpages)。
    【解决方案3】:

    我会删除第一行的类型转换,然后再试一次。在演员阵容引起问题之前,我已经看到了问题。因此,您的代码应如下所示:

     var doc = database.createDocument();
     doc.replaceItemValue("form", "Memo");
     doc.replaceItemValue("sendTo", "daniel.recio@slug.es");
     doc.replaceItemValue("subject", "hi there!");
     doc.replaceItemValue("body", "content here");
     doc.send();
    

    【讨论】:

    • 谢谢,我会尽力回复
    • 同样的错误,只需卸载服务器、FIX Pack 和 Upgrade PAck。安装了没有修复和 UP 的新服务器 domino 8.5.3 并且有相同的错误。谢谢
    • 已解决,非常感谢。问题是服务器不能自行解析,因为 DNS 指向其他 IP。当我用他的 IP 更改 SMTPFULLHOSTNAME notes.ini(文档服务器中的端口选项卡和基本选项卡中的主机名)时,一切正常(lotusScript 和 Xpages)。
    【解决方案4】:

    除了我使用 appendItemValue 而不是 replaceItemValue 之外,我在我的应用程序中运行了完全相同的代码,并且它工作正常。我也在 8.5.3 FP1 UP1 上。不确定内部会有什么不同,但可以尝试一下。

    【讨论】:

    • 谢谢,经过两次安装和重新安装,明天我会在新的服务器机器上尝试。
    • 已解决,非常感谢。问题是服务器不能自行解析,因为 DNS 指向其他 IP。当我用他的 IP 更改 SMTPFULLHOSTNAME notes.ini(文档服务器中的端口选项卡和基本选项卡中的主机名)时,一切正常(lotusScript 和 Xpages)。
    【解决方案5】:

    代码是否在您的本地机器上运行(如果您在浏览器中打开本地副本)?

    服务器文档可能已损坏:尝试重新创建它。这为我的一位客户解决了同样的问题。另一个想法是在数据库中重新创建默认视图。

    编辑:
    你能检查一下 Stacktrace 吗?最后一个块可能包含更多信息。应该有一些这样的行:

        lotus.domino.local.Document.Nsend(Native Method)
        lotus.domino.local.Document.send(Unknown Source)
    

    请在这些行上方发布 NotesException。

    【讨论】:

    • 已解决,非常感谢。问题是服务器不能自行解析,因为 DNS 指向其他 IP。当我用他的 IP 更改 SMTPFULLHOSTNAME notes.ini(文档服务器中的端口选项卡和基本选项卡中的主机名)时,一切正常(lotusScript 和 Xpages)。
    猜你喜欢
    • 1970-01-01
    • 2018-09-03
    • 2019-07-12
    • 2017-10-20
    • 2023-03-15
    • 2021-06-16
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多