java.lang.NoClassDefFoundError: iojsonwebtokenJwts - maven spring-boot

问题描述 投票:0回答:1

java.lang.NoClassDefFoundError: iojsonwebtokenJwts

当我在本地用mvn spring-boot:run运行时,没有问题。

但是当我用mvn clean install把我的应用程序打包成一个完全可执行的jar,然后以systemd服务的方式运行这个jar时,我得到了上面看到的这个错误。

它来自这一行。

String user = Jwts.parser()...

一些信息:发生问题的包的版本。0.11.1Platform: Ubuntu 18.04相关的依赖关系在maven pom.xml。

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-impl</artifactId>
    <version>0.11.1</version>
</dependency>

我还检查了生成的jar文件,有jjwt-impl.0.11.1的依赖关系。

BOOT-INF.lib.jjwt-impl-0.11.1.jar
BOOT-INF.lib.jjwt-api-0.11.1.jar
BOOT-INF.lib.jjwt-jackson-0.11.1.jar

我不知道该怎么解决这个问题 我以为只要把io.jsonwebtoken添加到maven依赖中就可以解决所有与classpath相关的问题。

我应用spring-boot-maven-plugin包来创建jar,并使用mvn clean install命令来创建完全可执行的jar文件。

当我在jar程序中打印出classpath时,它只指向那个jar文件本身,而不是其他地方。我不知道是否应该是这样的。我认为所有的依赖关系都应该被编译到同一个jar文件中,所以从这个意义上讲,这是有道理的。

我还在这里向官方jjwt库发出了一个问题。https:/github.comjwtkjjwtissues599。但这可能是与spring-boot有关的问题?

java spring-boot maven jar classpath
1个回答
0
投票

将maven包spring-boot-starter-parent从1.5.2.RELEASE更新到2.3.0.RELEASE版本,解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.