除其他外,我们将Java与Spring和Gradle结合使用,并且在部署到prod之后,每次尝试从MSExhange服务器获取消息时,都会出现此错误。我感到困惑,因为没有对负责该过程的程序包进行任何更改。

有错误...

java.lang.NoSuchFieldError: SIZE
    at com.sun.mail.imap.IMAPFolder.fetch(IMAPFolder.java:1200)


...在该行的第三行被调用...

FetchProfile fetchProfile = new FetchProfile();
fetchProfile.add(ID_HEADER);
folder.fetch(messages, fetchProfile);


这是ImapFolder线1200,这也是我完全感到困惑的另一个原因...

if (fp.contains(FetchProfile.Item.SIZE) ||


...因为在世界上尝试访问public static final字段时如何抛出这样的异常,我不知道。

感谢您阅读本文。和一般。

最佳答案

问题解决如下:

Gradle: org.apache.geronimo.specs:geronimo-javamail_1.4_spec:1.7.1
似乎此lib导致了上述电子邮件问题,因为它包含旧的JavaxMail版本-1.4而不是我们使用的1.5.6。

它是org.apache.cxf:cxf-rt-ws-security的可传递依赖项,可通过使gradle打印整个依赖项树来发现。

10-06 11:07