Spring Data gemfire - 多个OnServer功能

时间:2016-09-27 02:44:18

标签: java spring spring-data spring-data-gemfire

是否可以注册多个@OnServer功能接口?当我们使用@OnServer为客户端代理启用多个函数时,服务器无法启动以下错误。

  

设置构造函数参数时,无法解析对bean'org.springframework.data.gemfire.function.execution.GemfireOnServerFunctionTemplate#0'的引用;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.data.gemfire.function.execution.GemfireOnServerFunctionTemplate#0'的bean时出错:在设置构造函数参数时无法解析对bean'gemfireCache'的引用;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'gemfireCache'的bean时出错:FactoryBean在创建对象时抛出异常;嵌套异常是java.lang.IllegalStateException:此VM中已存在与分布式系统的连接。它具有以下配置:

gemfire函数放在一个包中,下面会添加到appContext中进行组件扫描。

<gfe-data:function-executions base-package="com.test.data.gemfire"/>

是否有标准做法只能注册1个OnServer功能(听起来限制太多)?任何指针都会有所帮助。

1 个答案:

答案 0 :(得分:0)

  

是否可以注册多个@OnServer功能接口?

是;绝对!

  

当我们使用@OnServer为客户端代理启用多个功能时,服务器无法启动时出现以下错误。

这是一个混乱的陈述。通过服务器,我假设您的意思是应用程序,GemFire缓存客户端JVM进程。 @OnServer注释仅适用于客户端,不能在&#34; GemFire Server&#34; (如在分布式系统的对等缓存成员中)。

  

java.lang.IllegalStateException:此VM中已存在与分布式系统的连接。它具有以下配置:

这是一个非常古老的问题(由SDG引起的异常),表明您使用的是旧版本(即&lt; 1.7.0.RELEASE)。

在客户端和服务器之间使用SSL时SGF-414引用了类似的问题,1.6.2.RELEASE1.7 RC1一起发布了初始修补程序。

不幸的是,这并没有解决整个问题,因此再次为SGF-416以及SGF-468中的SDG 1.8 RC1版本执行了更多工作。

毋庸置疑,这是由GemFire的分布式系统配置验证检查引起的一个非常复杂的问题,以及将ClientCachePool配置为单独的bean的能力(即存在在 Spring 上下文中的XML配置文件中的<gfe:client-cache><gfe:pool>元素中,需要进行适当的协调。

所以我的建议是,升级到最新的 Spring Data GemFire 版本,即 1.8.3.RELEASE 。此外,最新的1.7.5.RELEASE应该有效,但我并不完全确定。您可以随时在 Spring Data GemFire&#39> project page上找到最新信息。

如果您有其他问题或需要帮助,请与我们联系。

谢谢, 约翰