Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从2.3.6.RELEASE到2.4.0的Spring引导迁移和json ClassCastException_Spring_Spring Boot_Nimbus Jose Jwt - Fatal编程技术网

从2.3.6.RELEASE到2.4.0的Spring引导迁移和json ClassCastException

从2.3.6.RELEASE到2.4.0的Spring引导迁移和json ClassCastException,spring,spring-boot,nimbus-jose-jwt,Spring,Spring Boot,Nimbus Jose Jwt,我有一个Java项目,它依赖于SpringBoot版本2.3.6.RELEASE。但是,我在尝试升级到2.4.0版本时遇到了麻烦。在该项目中,没有其他任何更改,只有SpringBoot的版本。此后,应用程序将抛出以下错误消息: Caused by: java.lang.ClassCastException: com.nimbusds.jose.shaded.json.JSONObject cannot be cast to net.minidev.json.JSONObject 我比较了mav

我有一个Java项目,它依赖于SpringBoot版本2.3.6.RELEASE。但是,我在尝试升级到2.4.0版本时遇到了麻烦。在该项目中,没有其他任何更改,只有SpringBoot的版本。此后,应用程序将抛出以下错误消息:

Caused by: java.lang.ClassCastException: com.nimbusds.jose.shaded.json.JSONObject cannot be cast to net.minidev.json.JSONObject
我比较了maven依赖关系树(
mvn dependency:tree
),发现nimbus jose jwtjson smartlibs可能已经做了一些重大的更改

2.3.6.1发布

[INFO] +- org.springframework.security:spring-security-oauth2-jose:jar:5.3.5.RELEASE:compile
[INFO] |  +- com.nimbusds:nimbus-jose-jwt:jar:8.19:compile (version managed from 8.20.1)
[INFO] |  |  +- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] |  |  \- net.minidev:json-smart:jar:1.3.1:provided (scope managed from compile)
[INFO] |  +- org.springframework.security:spring-security-core:jar:5.3.5.RELEASE:compile
2.4.0

如上所示,nimbus jose jwt已从8.19更新至9.1.2。此外,json smart不再是2.4.0版中的nimbus jose jwt的一部分

根本原因可能是这种变化
但是,应该做些什么来防止这种异常?

您可以通过在pom中显式添加旧版本来覆盖jars nimbus jose jwt和json smart的默认版本。

您好,您可以显示一些代码吗?特别是当行抛出异常在您自己的代码库下时。找出使用旧依赖项的原因,并将其升级。您不能“仅仅”升级1个版本,您必须考虑这些因素。可能是您正在使用的某些代码(或其他库)使用了旧代码。要么升级,要么修改代码。如果不是,您就不能使用SpringBoot2.4(目前)。
[INFO] +- org.springframework.security:spring-security-oauth2-jose:jar:5.4.1:compile
[INFO] |  +- com.nimbusds:nimbus-jose-jwt:jar:9.1.2:compile (version managed from 9.0.1)
[INFO] |  |  \- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] |  +- org.springframework.security:spring-security-core:jar:5.4.1:compile