关于jakarta或javax ClassNotFoundException/版本不匹配的问题
之前因为使用的springboot版本比较低,另一个工具版本比较高,两者共同的依赖jakarta版本就一直报错:
报错ClassNotFoundException:jakarta.xml.bind not found
解决办法:
- 重新单独引入jakarta包:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
- 这时候我jakarta的版本就是2.3.0了,如果有其他地方引入了不同版本的,记得exclusions排除一下
- 但是我又报错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开头的包,所以把这俩都自己手动引入即可。