【发布时间】:2021-12-18 14:04:15
【问题描述】:
我用的是阿里巴巴的 Rsocket。我有带代码的代理服务:
public interface ExampleService {
Mono<String> getMessage();
}
和实施:
@RSocketService(serviceInterface = ExampleService.class, encoding = "json")
@Service
@RequiredArgsConstructor
public class ExampleServiceImpl implements ExampleService {
@Override
public Mono<String> getMessage() {
return Mono.just(response);
}
}
和客户服务(其他spring app):
public interface ExampleService {
Mono<String> getMessage();
}
@Configuration
public class RSocketConfig {
@Bean
public ExampleService exampleService(@Autowired UpstreamManager upstreamManager) {
return RSocketRemoteServiceBuilder
.client(ExampleService.class)
.service("com.example.rsocket.ExampleService")
.upstreamManager(upstreamManager)
.acceptEncodingType(RSocketMimeType.Json)
.build();
}
}
当我在 Controller 中注入 ExampleService 的 Bean 并使用 getMessage() 方法时,我得到了异常:
Caused by: java.lang.ClassCastException: class reactor.core.publisher.MonoContextWrite cannot be cast to class java.lang.Integer (reactor.core.publisher.MonoContextWrite is in unnamed module of loader 'app'; java.lang.Integer is in module java.base of loader 'bootstrap')
什么原因?
【问题讨论】:
标签: java spring alibaba-cloud rsocket