摘要
1、背景
最近有访客在我之前的文章中评论想要交换友链,为了满足的访客朋友的需求,最近在紧锣密鼓地开发友链功能,并优化一下后端的代码。
本次对后端代码进行了较大的修改,改完之后,功能回归的时候发现邮件发送报错了,本文简单记录下报错信息和解决方案。
问题出现的原因并不清楚,之前功能还是正常的,也没有引入很多依赖,奇怪,有知道原因的朋友可以评论告知一下
2、报错信息
java.lang.IllegalAccessError: failed to access class com.sun.activation.registries.LogSupport from class javax.activation.MailcapCommandMap (com.sun.activation.registries.LogSupport and javax.activation.MailcapCommandMap are in unnamed module of loader 'app')
at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:153) ~[activation-1.1.1.jar:1.1.1]
at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:74) ~[activation-1.1.1.jar:1.1.1]
at javax.activation.DataHandler.getCommandMap(DataHandler.java:167) ~[activation-1.1.1.jar:1.1.1]
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:625) ~[activation-1.1.1.jar:1.1.1]
at javax.activation.DataHandler.writeTo(DataHandler.java:329) ~[activation-1.1.1.jar:1.1.1]
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:261) ~[mail-1.4.1.jar:1.4.1]
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1321) ~[mail-1.4.1.jar:1.4.1]
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2074) ~[mail-1.4.1.jar:1.4.1]
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2042) ~[mail-1.4.1.jar:1.4.1]
at javax.mail.Transport.send(Transport.java:117) ~[mail-1.4.1.jar:1.4.1]
at com.izhxxx.utils.EmailUtils.sendMail(EmailUtils.java:81) ~[classes/:na]
at com.izhxxx.service.blog.infrastructure.gateway.impl.EmailGatewayImpl.sendCommentEmail(EmailGatewayImpl.java:54) ~[classes/:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.3.jar:6.0.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.0.3.jar:6.0.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.0.3.jar:6.0.3]
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) ~[spring-aop-6.0.3.jar:6.0.3]
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
3、解决方案
我一开始问chatgpt,告诉我可以引入下面这个依赖,但是试了下,并不可行
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
最终的解决方案是引入下面这个依赖
<dependency>
<groupId>jakarta.mail</groupId>
<artifactId>jakarta.mail-api</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>jakarta.mail</artifactId>
<version>1.0.0</version>
</dependency>
4、最后
希望本文对你有所帮助!😄
本站的邮件功能已修复,并且友链功能已上线,欢迎朋友们使用👏
评论区
0/2048