登录报错:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter解决

在本地运行的很好,但是打包成jar包后运行,加载出首页后点击登录,就会报如下错误

Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26)
    at io.jsonwebtoken.impl.DefaultJwtBuilder.signWith(DefaultJwtBuilder.java:99)
    at com.platform.common.utils.JwtUtils.generateToken(JwtUtils.java:49)
...

这是由于java版本过高,之前java 8及以前的版本是默认包含jaxb-api包的,但是升级后的版本就需要手动来导入这个包了。
所以找到pom.xml文件,然后在里边添加如下代码

<!--解决Handler dispatch failed;nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter-->
		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
			<version>2.3.0</version>
		</dependency>
		<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>

在这里插入图片描述

之后再重新打包jar,可以在细节里看到已经配置了缺少的包!
在这里插入图片描述
然后再重新上传总的jar包到服务器就可以运行了!

猜你喜欢

转载自blog.csdn.net/changyana/article/details/123454651