0

我们将 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);

这是第ImapFolder1200 行,这也是我完全困惑的另一个原因……

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

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

谢谢你读到这里。总的来说。

4

1 回答 1

1

问题解决如下:

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

它是 的传递依赖org.apache.cxf:cxf-rt-ws-security,它是通过让 gradle 打印整个依赖树找到的。

于 2016-12-05T09:09:00.977 回答