除其他外,我们将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打印整个依赖项树来发现。