关于jakarta或javax ClassNotFoundException/版本不匹配的问题

之前因为使用的springboot版本比较低,另一个工具版本比较高,两者共同的依赖jakarta版本就一直报错:
报错ClassNotFoundException:jakarta.xml.bind not found
解决办法:

  1. 重新单独引入jakarta包:
 <dependency>
     <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
     <version>2.3.0</version>
 </dependency>
  1. 这时候我jakarta的版本就是2.3.0了,如果有其他地方引入了不同版本的,记得exclusions排除一下
  2. 但是我又报错ClassNotFoundException:javax.xml.bind not found,于是又引入了包:
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>4.0.2</version>
</dependency>
<dependency>
    <groupId>com.sun.activation</groupId>
    <artifactId>jakarta.activation</artifactId>
    <version>2.0.1</version>
</dependency>

我这里遇到这个问题的原因在于,我引入的工具版本比较高,需要jakarta开头的包,但是springboot版本又是需要javax开头的包,所以把这俩都自己手动引入即可。