首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在gemfire中写入数据

无法在gemfire中写入数据
EN

Stack Overflow用户
提问于 2016-03-04 13:57:21
回答 1查看 637关注 0票数 0

我试图写信给gemfire服务器在地区‘贸易’。我的课就像:

代码语言:javascript
复制
public class TradeDetails{
String exchange;
String Product;
String Account;
String Quantity;
//getter and setter }

我已经在gfsh控制台中部署了jar。在gfsh控制台上运行的查询是

代码语言:javascript
复制
put --key=1 --value=('exchange':'xyz','Product':'abc','Account':'xyz','Quantity':'123L') --region=/trade --value-class=model.TradeDetails

但我搞错了

无法将JSON转换为类model.TradeDetails类型的对象。

可能是什么原因?

EN

回答 1

Stack Overflow用户

发布于 2016-03-04 21:53:02

根据GemFire 文献化,你的Gfsh put命令似乎是正确的.

put --key=1 --值=(‘exchange’:‘xyz’,'Product':'abc','Account':'xyz',‘Quantity’:‘123 L’) --region=/trade -value-class=trade.model.TradeDetails

但是,您的key1有点可疑。如果在“java.lang.Long”区域上使用了/trade的键约束,那么还需要在put上指定--key-class选项。

我成功地完成了以下工作..。

代码语言:javascript
复制
$ gfsh
    _________________________     __
   / _____/ ______/ ______/ /____/ /
  / /  __/ /___  /_____  / _____  / 
 / /__/ / ____/  _____/ / /    / /  
/______/_/      /______/_/    /_/    v8.2.0

Monitor and Manage GemFire

gfsh>connect
Connecting to Locator at [host=localhost, port=10334] ..
Connecting to Manager at [host=10.99.199.3, port=1099] ..
Successfully connected to: [host=10.99.199.3, port=1099]


gfsh>list members
Member Count : 1
Coordinator  : SpringGemFireDataServer (10.99.199.3(SpringGemFireDataServer:77179)<v0>:47312)

         Name           | Id
----------------------- | ----------------------------------------------------
SpringGemFireDataServer | 10.99.199.3(SpringGemFireDataServer:77179)<v0>:47312


gfsh>describe member --name=SpringGemFireDataServer
Name        : SpringGemFireDataServer
Id          : 10.99.199.3(SpringGemFireDataServer:77179)<v0>:47312
Host        : 10.99.199.3
Regions     : People
PID         : 77179
Groups      : 
Used Heap   : 229M
Max Heap    : 3641M
Working Dir : /Users/jblum/pivdev/spring-data-gemfire-tests-workspace/spring-data-gemfire-tests/target
Log file    : /Users/jblum/pivdev/spring-data-gemfire-tests-workspace/spring-data-gemfire-tests/target
Locators    : localhost[10334]

Cache Server Information
Server Bind              : localhost
Server Port              : 40404
Running                  : true
Client Connections       : 0


gfsh>list regions
List of regions
---------------
People


gfsh>describe region --name=/People
..........................................................
Name            : People
Data Policy     : partition
Hosting Members : SpringGemFireDataServer

Non-Default Attributes Shared By Hosting Members  

 Type  | Name | Value
------ | ---- | -----
Region | size | 0


gfsh>
gfsh>put --region=/People --key=1 --key-class=java.lang.Long --value=('firstName':'Jon','lastName':'Doe') --value-class=org.spring.data.gemfire.app.beans.Person
Result      : true
Key Class   : java.lang.Long
Key         : 1
Value Class : org.spring.data.gemfire.app.beans.Person

Value
------
<NULL>

gfsh>
gfsh>describe region --name=/People
..........................................................
Name            : People
Data Policy     : partition
Hosting Members : SpringGemFireDataServer

Non-Default Attributes Shared By Hosting Members  

 Type  | Name | Value
------ | ---- | -----
Region | size | 1

注意,我的"/People“区域有一个关键类型的java.lang.Long和值类型的org.spring.data.gemfire.app.beans.Person

虽然,当我试图读回“乔恩·多伊”时,格什吐了.

代码语言:javascript
复制
gfsh>get --region=/People --key=1 --key-class=java.lang.Long --value-class=org.spring.data.gemfire.app.beans.Person
Exception occurred. null

但是,我确实成功地创建了一个(基于Spring引导的) GemFire客户端缓存应用程序 (与碱基配置 of SpringGemFireClient)。

代码语言:javascript
复制
Person is [Jon Doe]

您可以尝试用杰克逊映射注释来注释您的model.TradeDetails应用程序域类型,但我不确定Gfsh是否真的使用它们来执行映射,因为我认为(在我持续检查时) Gfsh没有使用杰克逊。不过,也不会疼的。无论哪种方式。

注意,我的服务器是用这个基于SpringGemFireDataServerSpringGemFireServer启动的。

希望这能帮上忙(有点:-)。

干杯!约翰

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35797900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档