본문 바로가기

개발/Java

javax.mail를 이용한 메일발송시 java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger 에러발생

728x90
반응형

 

jdk11 - javax.mail 라이브러리를 이용하여 메일발송시 java.lang.NoClassDefFoundError 발생

[javax.mail] java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
	at javax.mail.Session.initLogger(Session.java:283)
	at javax.mail.Session.<init>(Session.java:268)
	at javax.mail.Session.getInstance(Session.java:304)
	at cinos.devcode.SendMailO365.exec(SendMailO365.java:25)
	at cinos.devcode.SendMailO365.main(SendMailO365.java:52)
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 5 more

 

원인은 javax.mail 라이브러리 내에서 지원종료되어 삭제된 클래스를 사용하여 생기는 에러로 파악된다.

해결방법은 javax.mail 라이브러를 교체하면 된다. (artifactId : javax.mail-api -> mail)

[pom.xml] javax.mail

<!-- java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger 에러발생
<dependency>
	<groupId>javax.mail</groupId>
	<artifactId>javax.mail-api</artifactId>
	<version>1.6.2</version>
</dependency>
-->
<dependency>
	<groupId>javax.mail</groupId>
	<artifactId>mail</artifactId>
	<version>1.4.7</version>
</dependency>

 

메이븐 Mail 라이브러리 참고 - https://mvnrepository.com/artifact/javax.mail/mail/1.4.7

 

728x90
반응형