0

是否可以注册多个@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 函数的标准做法(这听起来太严格了)?任何指针都会有所帮助。

4

1 回答 1

0

是否可以注册多个@OnServer 函数接口?

是的; 绝对地!

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

这是一个令人困惑的说法。通过服务器,我假设您的意思是应用程序,GemFire 缓存客户端 JVM 进程。 @OnServer注释仅适用于客户端,不能用于“GemFire 服务器”(如在分布式系统的对等缓存成员中)。

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

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

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

然而不幸的是,这并没有解决整个问题,因此再次为SGF-416SGF-4681.8 RC1中的 SDG版本进行了额外的工作。

不用说,这是一个非常复杂的问题,由 GemFire 的分布式系统配置验证检查以及在SpringClientCache上下文中将和配置Pool为单独的 bean 的能力(即通过XML 配置文件中的<gfe:client-cache>和元素) ,在适当的情况下需要协调。<gfe:pool>

所以我给你的建议是,升级到最新的Spring Data GemFire版本,即1.8.3.RELEASE。此外,最新的1.7.5.RELEASE应该可以工作,尽管我不完全确定。您可以随时在Spring Data GemFire 的 项目页面上找到最新信息。

如果您有其他问题或需要帮助,请告诉我。

谢谢,约翰

于 2016-09-27T18:46:09.933 回答