【发布时间】:2021-10-16 11:23:51
【问题描述】:
直到从 spring-boot-starter-parent 2.1.8 迁移到 2.5.2 我收到以下错误,但没有找到解决方案。
当我对我的反应式存储库执行保存时,我收到以下错误,但我没有找到任何解决方案。请问大家有什么解决办法吗?
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.ClassCastException:类 com.datastax.oss.driver.internal.core.type.DefaultListType 不能 转换为 com.datastax.oss.driver.api.core.type.SetType 类 (com.datastax.oss.driver.internal.core.type.DefaultListType 和 com.datastax.oss.driver.api.core.type.SetType 在未命名的模块中 loader 'app') 引起:java.lang.ClassCastException: 类 com.datastax.oss.driver.internal.core.type.DefaultListType 不能 转换为 com.datastax.oss.driver.api.core.type.SetType 类 (com.datastax.oss.driver.internal.core.type.DefaultListType 和 com.datastax.oss.driver.api.core.type.SetType 在未命名的模块中 加载程序“应用程序”)在 com.datastax.oss.driver.internal.core.type.codec.registry.CachingCodecRegistry.inspectType(CachingCodecRegistry.java:359) 在 com.datastax.oss.driver.internal.core.type.codec.registry.CachingCodecRegistry.codecFor(CachingCodecRegistry.java:256) 在 com.datastax.oss.driver.internal.core.data.ValuesHelper.encodePreparedValues(ValuesHelper.java:112) 在 com.datastax.oss.driver.internal.core.cql.DefaultPreparedStatement.boundStatementBuilder(DefaultPreparedStatement.java:187) 在 org.springframework.data.cassandra.core.PreparedStatementDelegate.bind(PreparedStatementDelegate.java:51) 在 org.springframework.data.cassandra.core.ReactiveCassandraTemplate$PreparedStatementHandler.bindValues(ReactiveCassandraTemplate.java:1040) 在 org.springframework.data.cassandra.core.cql.ReactiveCqlTemplate.lambda$null$6(ReactiveCqlTemplate.java:577) 在 reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:152) 在 reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) 在 reactor.core.publisher.Flux.subscribe(Flux.java:8221) 在 reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195) 在 reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1815) 在 reactor.core.publisher.MonoCompletionStage.lambda$subscribe$0(MonoCompletionStage.java:82) 在 java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) 在 java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883) 在 java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2251) 在 java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:143) 在 reactor.core.publisher.MonoCompletionStage.subscribe(MonoCompletionStage.java:57) 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher.Flux.subscribe(Flux.java:8235) 在 reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:200) 在 reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) 在 reactor.core.publisher.Mono.subscribe(Mono.java:4135) 在 reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:200) 在 reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) 在 reactor.core.publisher.MonoFromFluxOperator.subscribe(MonoFromFluxOperator.java:74) 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 在 reactor.core.publisher.Mono.subscribe(Mono.java:4150) 在 reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:203) 在 reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) 在 reactor.core.publisher.Mono.subscribe(Mono.java:4135) 在 reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:426) 在 reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:270) 在 reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:228) 在 reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:371) 在 reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:164) 在 reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:86) 在 reactor.core.publisher.Flux.subscribe(Flux.java:8235) 在 reactor.core.publisher.FluxUsingWhen.subscribe(FluxUsingWhen.java:93) 在 reactor.core.publisher.Flux.subscribe(Flux.java:8235) 在 reactor.core.publisher.Flux.subscribeWith(Flux.java:8408) 在 reactor.core.publisher.Flux.subscribe(Flux.java:8205) 在 reactor.core.publisher.Flux.subscribe(Flux.java:8129) 在 reactor.core.publisher.Flux.subscribe(Flux.java:8047) 在 fr.contractsink.services.ContractConsumer.receive(ContractConsumer.java:71) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 方法)在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) 在 org.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:171) 在 org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:120) 在 org.springframework.kafka.listener.adapter.HandlerAdapter.invoke(HandlerAdapter.java:56) 在 org.springframework.kafka.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:347) 在 org.springframework.kafka.listener.adapter.RecordMessagingMessageListenerAdapter.onMessage(RecordMessagingMessageListenerAdapter.java:92) 在 org.springframework.kafka.listener.adapter.RecordMessagingMessageListenerAdapter.onMessage(RecordMessagingMessageListenerAdapter.java:53) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeOnMessage(KafkaMessageListenerContainer.java:2319) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeOnMessage(KafkaMessageListenerContainer.java:2300) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeRecordListener(KafkaMessageListenerContainer.java:2214) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.doInvokeWithRecords(KafkaMessageListenerContainer.java:2139) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeRecordListener(KafkaMessageListenerContainer.java:2021) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeListener(KafkaMessageListenerContainer.java:1703) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.invokeIfHaveRecords(KafkaMessageListenerContainer.java:1272) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.pollAndInvoke(KafkaMessageListenerContainer.java:1264) 在 org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:1161) 在 java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 在 java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) 在 java.base/java.util.concurrent.FutureTask.run(FutureTask.java) 在 java.base/java.lang.Thread.run(Thread.java:829)
在我的 pom.xml 中为 cassandra 声明的唯一依赖项是:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-cassandra-reactive</artifactId> </dependency>
enter image description here 非常感谢和最好的问候, 阿德里安
【问题讨论】:
-
用你的代码检查表的模式——看起来你试图使用 List 来设置,反之亦然
-
@AlexOtt 不抱歉,实体和架构在大约 3 年前没有改变......
标签: java spring cassandra datastax