已解决 - Spring Boot Starter Mail - 无法从类 javax.activation.MimetypesFileTypeMap 访问类 com.sun.activation.registries.LogSupport

Ada*_*jka 22 jaxb spring-boot

我想分享使用 Spring Boot Starter Mail 时上述问题的解决方案,并尝试创建 MimeMessageHelper 实例导致异常:无法从类 javax.activation.MimetypesFileTypeMap 访问类 com.sun.activation.registries.LogSupport

问题出在 4.0.0 版本中的 jaxb-core 依赖性背后,它带来了 angus-activation 库依赖性。如果首先加载的库没有 LogSupport 的公共类。LogSupport 的正确来源来自 com.sun.activation:jakarta.activation 库。

解决方案是在 jaxb-core 依赖项中排除以下内容:

<dependency>
 <groupId>com.sun.xml.bind</groupId>
 <artifactId>jaxb-core</artifactId>
 <version>4.0.0</version>
 <exclusions>
  <exclusion>
   <groupId>org.eclipse.angus</groupId>
   <artifactId>angus-activation</artifactId>
  </exclusion>
 </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

同时以下依赖项应该可用:

<dependency>
 <groupId>com.sun.activation</groupId>
 <artifactId>jakarta.activation</artifactId>
 <version>2.0.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

小智 1

对我来说,帮助将依赖项添加到 pom.xml :)

       <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>
Run Code Online (Sandbox Code Playgroud)