Разница между javax.mail и javax.mail-api

В чем разница между javax.mail а также javax.mail-api?

Я нашел их из репозитория Maven.

Когда каждый должен использоваться?

Пакет программного обеспечения поставляется с javax.mail-api но я не мог заставить его работать, поэтому я скачал javax.mail,

3 ответа

javax.mail-api содержит только интерфейсы и javax.mail содержит реализацию.

Когда библиотеки, такие как Java Mail API, не публикуются их авторами в Maven Central или другом общедоступном хранилище, возможно, что разные стороны загружают их, публикуя их с конфликтующими groupId, Вероятно, это тот случай, когда вы видите этих двоих.

Этот артефакт содержит последнюю версию всего, что вам нужно для работы с почтовым API.

AFAIK из опыта и глядя на Maven Central...

Когда javax.mail:mail упакован в 'war' и также находится в tomcat 'lib', возникает такая ошибка:

java.lang.ClassCastException: javax.mail.Session cannot be cast to javax.mail.Session

Аналогично, javax.mail:javax-mail-api содержит класс Session и представляет собой нечто большее, чем просто интерфейсы. Когда он отсутствует, появляется эта ошибка:

java.lang.NoClassDefFoundError: javax/mail/Authenticator

com.sun.mail:javax-mail - это что-то особенное для солнца / оракула.

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