我正在使用restygwt进行客户端 - 服务器应用程序。我编写了我的方法并制作了一个servlet。
@GET
@Path("/get/getpoints/{projectId}")
@Produces(MediaType.APPLICATION_JSON)
void getAZPoints(@PathParam("projectId") BigInteger projectID,
MethodCallback <Map<String, String>> responseWithName);
当使用Map<String, String>
类型的响应时,我从客户端的服务器得到错误的响应。 Servlet返回如下数据:
["1":"New Pole","2":"New Manhole","3":"New Container 2","4":"New Building#11"]
但是当收到回复时,我的回复只包含2个条目。
虽然我将类型更改为List<String>
@GET
@Path("/get/getpoints/{projectId}")
@Produces(MediaType.APPLICATION_JSON)
void getAZPoints(@PathParam("projectId") BigInteger projectID,
MethodCallback <List<String>> responseWithName);
我的响应与servlet返回数据相同。
你能帮我解决这个问题吗?
答案 0 :(得分:0)
我发现这是一个众所周知的问题 - https://github.com/resty-gwt/resty-gwt/issues/119。它发生的原因是我的字符串(在我的例子中实际上是一个数字字符串,如&#34; 123&#34;依此类推)像数字一样被发送并以错误的方式解码。作为一个解决方案,我将我的大整数作为带有一些文本字符串的字符串发送,并在客户端进行解码。现在它工作正常。