java.lang.IncompatibleClassChangeError: class org.springframework.session.hazelcast.PrincipalNameExtractor
java.lang.IncompatibleClassChangeError: class org.springframework.session.hazelcast.PrincipalNameExtractor
我正在尝试为 spring 安全 oauth2 客户端应用程序配置 spring 由 hazelcast 支持的会话。
我按照以下 link 配置了 hazelcast。
https://docs.spring.io/spring-session/docs/current/reference/html5/guides/java-hazelcast.html
但是,由于以下错误,使用@SpringBootTest 注释的类 开始失败:
java.lang.IncompatibleClassChangeError: class org.springframework.session.hazelcast.PrincipalNameExtractor has interface com.hazelcast.query.extractor.ValueExtractor as super class
我的 pom.xml of spring boot 2.5 应用程序包含以下两个新的 hazelcast 配置依赖项
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-hazelcast</artifactId>
</dependency>
根据下面的 Whosebug post,问题似乎是 ValueExtractor 可用于 Maven 依赖项中的两个不同版本
IncompatibleClassChangeError: class ClassMetadataReadingVisitor has interface ClassVisitor as super class
因此,我检查了 Maven 依赖项,可以看到 PrincipalNameExtractor 可从 spring-session-hazelcast 的 2.5 版本开始使用,而 ValueExtractor 可从 com.hazelcast 的 4.2 版本开始使用。然而,
spring-session-hazelcast 正在使用 3.12.12 版本的 com.hazelcast 进行编译。
所以我应该使用 com.hazelcast 的 3.12.12 版本来解决这个问题还是我误解了这个问题?我更喜欢使用最新版本。
从 spring-sessions v2.4.0 开始,您可以使用 Hazelcast v4.x 并为会话存储库配置 Hazelcast4PrincipalNameExtractor
和 Hazelcast4IndexedSessionRepository
。唯一的区别是带有 4
指示符的 class 名称。也就是说,HazelcastIndexedSessionRepository
变为 4.x 与 Hazelcast4IndexedSessionRepository
兼容。
这是涵盖两个版本的指南:https://guides.hazelcast.org/spring-session-hazelcast/
我正在尝试为 spring 安全 oauth2 客户端应用程序配置 spring 由 hazelcast 支持的会话。
我按照以下 link 配置了 hazelcast。 https://docs.spring.io/spring-session/docs/current/reference/html5/guides/java-hazelcast.html
但是,由于以下错误,使用@SpringBootTest 注释的类 开始失败:
java.lang.IncompatibleClassChangeError: class org.springframework.session.hazelcast.PrincipalNameExtractor has interface com.hazelcast.query.extractor.ValueExtractor as super class
我的 pom.xml of spring boot 2.5 应用程序包含以下两个新的 hazelcast 配置依赖项
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-hazelcast</artifactId>
</dependency>
根据下面的 Whosebug post,问题似乎是 ValueExtractor 可用于 Maven 依赖项中的两个不同版本 IncompatibleClassChangeError: class ClassMetadataReadingVisitor has interface ClassVisitor as super class
因此,我检查了 Maven 依赖项,可以看到 PrincipalNameExtractor 可从 spring-session-hazelcast 的 2.5 版本开始使用,而 ValueExtractor 可从 com.hazelcast 的 4.2 版本开始使用。然而, spring-session-hazelcast 正在使用 3.12.12 版本的 com.hazelcast 进行编译。
所以我应该使用 com.hazelcast 的 3.12.12 版本来解决这个问题还是我误解了这个问题?我更喜欢使用最新版本。
从 spring-sessions v2.4.0 开始,您可以使用 Hazelcast v4.x 并为会话存储库配置 Hazelcast4PrincipalNameExtractor
和 Hazelcast4IndexedSessionRepository
。唯一的区别是带有 4
指示符的 class 名称。也就是说,HazelcastIndexedSessionRepository
变为 4.x 与 Hazelcast4IndexedSessionRepository
兼容。
这是涵盖两个版本的指南:https://guides.hazelcast.org/spring-session-hazelcast/