Очень странная проблема с Javamail после обновления Jetty с 9.3 до 9.4 - PullRequest
0 голосов
/ 24 февраля 2019
java.lang.ClassCastException: com.sun.mail.smtp.SMTPTransport cannot be cast to com.sun.mail.smtp.SMTPTransport

Довольно понятно, почему это ошеломляет.Я использую Javamail, возможно, использую старые фляги, но они всегда работали нормально, поэтому я не видел причин для обновления.Я использую эти файлы для Javamail: activ.jar dsn.jar imap.jar mailapi.jar pop3.jar smtp.jar.

Все работало нормально, пока я не обновил Jetty 9.4 и не начал получать эти странные ошибки.Очень странно то, что я получаю эти ошибки только иногда, когда письмо отправляется слушателем, все письма, отправленные сервлетами, работают нормально, но некоторые писем, установленных слушателями, провоцируют эту ошибку.

Я заметил, что в 9.4 Jetty включает другую реализацию Javamail в папке lib.Я попытался удалить этот файл, а затем я начал получать ошибки "нет такого транспорта".Я попытался поместить свои файлы javamail в папку lib / ext, и затем я начал получать com.sun.mail.smtp.SMTPTransport, который не может быть приведен к ошибке com.sun.mail.smtp.SMTPTransport.

Я просто не понимаю, как работает загрузчик классов Jetty, иногда мне приходится дублировать jar-файлы как в папку $ JETTY_BASE / lib / ext, так и в папку WEB-INF / lib, но большую часть времени, если я дублирую файл в обоихпапки, я получаю предупреждение.

Я пытался использовать реализацию Java для Jetty, чтобы заменить мои старые файлы, но она просто не работала, поэтому я сдался.

У меня кончаетсяидей для решения этой проблемы, любая помощь будет оценена.

...