java.lang.NoClassDefFoundError: io/jsonwebtoken/Jwts - maven spring-boot
java.lang.NoClassDefFoundError: io/jsonwebtoken/Jwts - maven spring-boot
java.lang.NoClassDefFoundError: io/jsonwebtoken/Jwts
当我 运行 在本地使用 mvn spring-boot:运行 时,没有问题。
但是当我使用 mvn clean install 将我的应用程序打包到一个完全可执行的 jar 中,然后 运行 将 jar 作为 systemd 服务时,我得到了上面看到的这个错误。
来自这一行:
String user = Jwts.parser()...
一些信息:
出现问题的包版本:0.11.1
平台: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 依赖项就可以解决与类路径等相关的所有问题。
我正在应用 spring-boot-maven-plugin 包来创建 jar 并命令 mvn clean install 来创建完全可执行的 jar 文件。
当我从 jar 应用程序中打印出类路径时,它只指向该 jar 文件本身,没有其他地方。我不确定这是否应该如此。我认为所有的依赖项都应该编译到同一个 jar 中,所以在这个意义上它是有意义的。
也在这里向官方 jjwt 库发出了一个问题:https://github.com/jwtk/jjwt/issues/599
但这可能是与 spring-boot?
更多相关的问题
通过更新 maven 包 spring-boot-starter-parent 从 1.5.2.RELEASE 到 2.3.0.RELEASE 版本
解决了这个问题
下面在 java V18 中为我工作,引用自 Link
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-gson</artifactId>
<version>0.11.2</version>
<scope>provided</scope>
</dependency>
java.lang.NoClassDefFoundError: io/jsonwebtoken/Jwts
当我 运行 在本地使用 mvn spring-boot:运行 时,没有问题。
但是当我使用 mvn clean install 将我的应用程序打包到一个完全可执行的 jar 中,然后 运行 将 jar 作为 systemd 服务时,我得到了上面看到的这个错误。
来自这一行:
String user = Jwts.parser()...
一些信息: 出现问题的包版本:0.11.1 平台: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 依赖项就可以解决与类路径等相关的所有问题。
我正在应用 spring-boot-maven-plugin 包来创建 jar 并命令 mvn clean install 来创建完全可执行的 jar 文件。
当我从 jar 应用程序中打印出类路径时,它只指向该 jar 文件本身,没有其他地方。我不确定这是否应该如此。我认为所有的依赖项都应该编译到同一个 jar 中,所以在这个意义上它是有意义的。
也在这里向官方 jjwt 库发出了一个问题:https://github.com/jwtk/jjwt/issues/599 但这可能是与 spring-boot?
更多相关的问题通过更新 maven 包 spring-boot-starter-parent 从 1.5.2.RELEASE 到 2.3.0.RELEASE 版本
解决了这个问题下面在 java V18 中为我工作,引用自 Link
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-gson</artifactId>
<version>0.11.2</version>
<scope>provided</scope>
</dependency>