Разница между 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 - это что-то особенное для солнца / оракула.