是否有任何方法可以使用键类和值类参数用于Spring 中的Gemfire接收器?关于文档,我只能使用keyExpression,而不能使用它的类类型。钥匙课也一样。
我对金火有这样的命令,
put --key-class = java.lang.String --value-class = Employee --key = ('id': '998') --value = ('id': 186, 'firstName': 'James', 'lastName': 'Goslinga') --region = replicated2
所以我在Gemfire中使用了--键类和参数。但是我不能使用Spring中的keyExpression参数,因为Gemfire Sink中只有参数。
有什么要解决的吗?
发布于 2015-04-29 15:03:29
据我所知,本机GemFire不支持上面的语法。所以你不能用Spring开箱即用。语法看上去有点像SQL。你用的是Gemfire XD吗?这是你自己写的吗?
gemfire接收器使用弹簧-集成-双子火,允许您使用SpEL声明keyExpression。使用gemfire接收器的值始终是有效负载。SI gemfire出站适配器包装Region.put(键,值)。GemFire API支持通过泛型(即区域<K,V>)进行键入,但在本例中不强制执行。GemFire RegionFactory允许keyConstraint和valueConstraint属性约束类型,但这是Spring外部区域配置的一部分。此外,所有这些都不能解决示例中的数据绑定问题,例如,
Person p = ('id': 186, 'firstName': 'James', 'lastName': 'Goslinga')此功能将需要自定义接收器模块。如果您的命令可以作为shell脚本执行,则可以使用shell接收器来调用它。
发布于 2015-05-06 13:33:12
谢谢你的回答,
也许我可以用这种方式解释我的问题。
如果我将以下命令写入gemfire控制台,则可以在包含Employee类对象的区域中创建新条目。
put --key-class=java.lang.String --value-class=Employee --key=('id':'998') --value=('id':186,'firstName':'James','lastName':'Goslinga') --region=replicated2
我想要做的是发送spring的数据。我将在Gemfire有一个新的雇员课程目标。
如果我创建这样的流,它将从兔子MQ获取数据并将其发送到gemfire。
stream create --name reference-data-import --definition "rabbit --outputType=text/plain | gemfire-json-server --host=MC0WJ1BC --regionName=region10 --keyExpression=payload.getField('id')" --deploy
我可以看到这种类型的"com.gemstone.gemfire.pdx.internal.PdxInstanceImpl".中的数据
关于spring文档,我可以使用这样的参数化outputType=application/x-java-object;type=com.bar.Foo,但是即使我部署了类,我也无法解决它。如果我能看到一个简单的工作例子,那对我来说将是很棒的。
https://stackoverflow.com/questions/29937280
复制相似问题