我设置了一个连接到 gfsh-create Gemfire 服务器的 Spring Session Gemfire 客户端应用程序。
但是,除非我加载所有包含类定义的 jar 文件,这些类定义由附加到 Gemfire 服务器上的 GemFireSession 的属性使用(通过使用 gfsh 创建服务器时的类路径属性)会话持久性失败(ClassNotFoundException 等)
有什么方法可以将 Spring Session Gemfire 配置为不需要客户端类在服务器端可用?
我设置了一个连接到 gfsh-create Gemfire 服务器的 Spring Session Gemfire 客户端应用程序。
但是,除非我加载所有包含类定义的 jar 文件,这些类定义由附加到 Gemfire 服务器上的 GemFireSession 的属性使用(通过使用 gfsh 创建服务器时的类路径属性)会话持久性失败(ClassNotFoundException 等)
有什么方法可以将 Spring Session Gemfire 配置为不需要客户端类在服务器端可用?
不,为了正确处理 Session 复制,Spring Session Data GemFire支持目前使用 GemFire DataSerialization 框架,而不是PDX,这与 GemFire 自己的HTTP Session Management 模块相同。
我确实有一个未解决的问题要重新讨论,但当时 PDX 存在一些限制(与纯 GemFire DataSerialization 框架相比),以支持 Spring Session 中所需的所有功能,例如增量。
最低限度,您只需要在从Gfsh启动时将存储在 Session 中的应用程序域对象放在GemFire Servers类路径上。
理想情况下,您可以将使用 Spring 的 GemFire 服务器配置为Spring Boot应用程序,该应用程序将所有依赖项都已经在类路径上,您甚至可以使用 Spring Session 配置 GemFire 服务器的 Spring Session部分 @EnableGemFireHttpSession
。这实际上将设置所需的区域(存储会话状态)以及任何过期策略。
-约翰