【问题标题】:Xpages - Error calling method 'next()' on java class 'java.util.AbstractList$SimpleListIterator'Xpages - 在 java 类“java.util.AbstractList$SimpleListIterator”上调用方法“next()”时出错
【发布时间】:2019-08-15 08:06:53
【问题描述】:

在发送包含附件的电子邮件之前,我正在尝试使用迭代器方法遍历文档中的附件。在循环期间尝试提取附件时,获取文件名似乎很好,但获取附件路径会引发上述错误。

这是用ssjs写的,但是调用了一个java类通过SMTP发送邮件。

 var bodyAttach = new java.util.Vector();
    var alist = nDoc.getAttachmentList("gDocs");
    if (!alist.isEmpty()) {
        var alisti = alist.iterator();
        //  Each element is of type NotesEmbeddedObject
        while (alisti.hasNext()) {
            attachname = alisti.next().getName();

            attachpath = java.lang.System.getProperty('java.io.tmpdir') + java.io.File.separator + attachname.replace(/ /g, '_');
            alisti.next().extractFile(attachpath);

            extattachname = @LowerCase(@RightBack(attachname, "."));

            if (extattachname == "gif" || extattachname == "jpg" || extattachname == "jpeg" || extattachname == "png") {
                res_attachpath = resizeImage(attachname,attachpath,1024,1024);
                if (res_attachpath != "") {
                    bodyAttach.add(res_attachpath);
                } else {
                    bodyAttach.add(attachpath);
                }
            } else {
                bodyAttach.add(attachpath);
            }
        }
    }
    vMail.setBodyAttach(bodyAttach);

    vMail.getBodyAttach();

在设置 email 变量的附件之前,应该遍历附件,调整图像大小,但我收到以下错误:

在 java 类上调用方法 'next()' 时出错 'java.util.AbstractList$SimpleListIterator'

这指向此代码的第 10 行:

alisti.next().extractFile(attachpath); // error points to this line

【问题讨论】:

  • Sam,当你在上面的时候:将代码转换为 bean。使测试更容易,代码更简洁

标签: java xpages xpages-ssjs ssjs


【解决方案1】:

你在你的身体里调用了两次.next().next() 从 List 的当前位置获取下一个元素并重新定位。在循环内只调用一次.next()。将其设置为变量。或者你得到下一个,然后是下一个,然后是下一个,中间没有检查你是否已经到达列表的末尾。这是导致错误的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多