使用RestyGWT发布此消息更容易吗?

使用RestyGWT发布此消息更容易吗?

问题描述:

问题

目前我正在用Resty-GWT替换GSON,以使我的JSON-RPC调用由于与GSON的各种烦恼。它的工作原理正是我想要它,但我无法弄清楚如何发送等我的消息比在String使用RestyGWT发布此消息更容易吗?

String names_ = "{\"jsonrpc\":\"2.0\",\"method\":\"RegisterValues\",\"params\":[[\"FirstValue\"],\"id\":2}"; 

我想这样做是一个更聪明的办法,所以我不必须写出所有这些值。但最重要的是,我想要一个简单的方法来插入这些参数。简单地在我的请求载荷中声明这些属性的一些方法。

电流法

String通过这个呼叫发送:

testService.RegisterValues(names_, new MethodCallback<testService.Response>(){ 

      @Override 
      public void onFailure(Method method, Throwable exception) { 
       // TODO Auto-generated method stub 
       Window.alert(exception.getMessage().toString()); 
      } 

      @Override 
      public void onSuccess(Method method, testService.Response response) { 
       // TODO Auto-generated method stub 
       Window.alert("Hello" + response.getResult().toString()); 


      } 
     }); 

testService类在这里找到:

import javax.ws.rs.POST; 
import javax.ws.rs.Produces; 

import org.fusesource.restygwt.client.MethodCallback; 
import org.fusesource.restygwt.client.RestService; 

public interface testService extends RestService { 

@Produces("application/json") 
     @POST 
     public void RegisterValues(String names_, MethodCallback<Response> callback); 
} 

回调,然后发送到这个响应类,其中我可以轻松地对数据进行反序列化,解压缩(虽然在这里并不重要)):

public class Response { 

     private int id; 
     private Map<String, Map<String, Integer>> result; 
     private String error; 

     public int getId() { 
      return id; 
     } 

     public void setId(int id) { 
      this.id = id; 
     } 
       //...etc. 

首先你的json看起来不对,你有一个空的方括号([)没有关闭?

然后,您必须完成与您的对象响应完全相同的事情。你需要创建一个代表你名字的对象_ Resty会为你序列化它。

public class Params { 
    String jsonrpc; 
    String method; 
    String[] params; 
    String id; 
} 
+0

是的,对不起,我错过了断括号(这只是复制并从我的Eclipse项目粘贴)。有没有办法只是创建一个JSON格式的Java字符串来传递它? – fiz

+0

我也必须道歉,我完全不了解这个。 – fiz

+0

我不明白你现在正在使用带有json对象的字符串,但是你不想使用一个对象?你想使用什么类型的对象? –