我的spring boot data geode @Controller端点设置了一个rsocket响应,它从另一个包中@Autowired一个服务类:
@Controller
public class RSocketController {
private static final Logger log = LogManager.getLogger(RSocketController.class);
@Autowired
MyService myService;myService类包含由@EnableClusterDefinedRegions从Geode集群设置的@Resource区域。
@Resource
private Region<String, Request> request;当rsocket请求被发送到端点时,@Autowired服务会给出一个错误:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'request' available
我有一些用@Region装饰的域对象,我也用@Controller和@Configuration装饰了这些域对象,它们给出了如下错误:
Bean named 'request' is expected to be of type 'org.apache.geode.cache.Region' but was actually of type 'region.request'和
Bean named 'request' is expected to be of type org.apache.geode.cache.Region but was actually of type region.request$$EnhancerBySpringCGLIB$$5e6b7dd1当我打开调试日志时,我看到@EnableClusterDefinedRegions不知何故没有触发,因此没有从Geode集群设置request区域。啊哈。
发布于 2020-02-18 23:20:46
通过向@EnableClusterDefinedRegions类添加@Component注释解决了这个问题,Spring Boot bean收集器随后可以看到该类。
https://stackoverflow.com/questions/60283999
复制相似问题