NoSuchFieldError: РАЗМЕР при получении почты через IMAP

Мы используем 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 поле, я понятия не имею.

Спасибо, что прочитали это далеко. И вообще.

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 всего дерева зависимостей.

Другие вопросы по тегам