Jakarta Mail с OpenJDK 11: java.util.ServiceConfigurationError: jakarta.mail.Provider: Provider com.sun.mail.imap.IMAPProvider not a subtype
Я перехожу с java 8 на openjdk-11. Теперь Почта (отправка письма с помощью smtp) больше не работает. В проекте используются openjdki 11 и jakarta.mail-2.0.0 на Win10. Позже я добавил jakarta.activation-api-2.0.0.
Properties props = new Properties();
props.put("mail.smtp.host", host);
Session session = Session.getInstance(props);
session.setDebug(debug);
try {
// create a message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
message.setSubject("Jakarta Mail API Test");
message.setSentDate(new Date());
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText("This is a message body.\nHere's line two.");
MimeBodyPart mbp2 = new MimeBodyPart();
mbp2.setText("This is the text in the message attachment.", "us-ascii");
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
message.setContent(mp);
Transport.send(message);
} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
}
Код компилируется, но не запускается:
Exception in thread "main" java.util.ServiceConfigurationError: jakarta.mail.Provider: Provider com.sun.mail.imap.IMAPProvider not a subtype
at java.util.ServiceLoader.fail(ServiceLoader.java:239)
at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:376)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at jakarta.mail.Session.loadProviders(Session.java:964)
at jakarta.mail.Session.<init>(Session.java:254)
at jakarta.mail.Session.getInstance(Session.java:281)
at test.transport.main(transport.java:51)
C:\Users\<user>\Documents\NetbeansProjects12.0\AC99_Benutzer\nbproject\build-impl.xml:1370: The following error occurred while executing this line:
C:\Users\<user>\Documents\NetbeansProjects12.0\AC99_Benutzer\nbproject\build-impl.xml:993: Java returned: 1
BUILD FAILED (total time: 0 seconds)
1 ответ
Домашняя страница Per Jakarta Mail : Artfact
jakarta.mail
это реализация и
jakarta.mail-api
может использоваться только для компиляции. Используется только с
provided
область зависимости.