问题
由于 GSON 的各种烦恼,目前我正在用 Resty-GWT 替换 GSON 来进行 JSON-RPC 调用。它完全按照我想要的方式工作,但我不知道如何发送除 String
之外的消息:
String names_ = "{\"jsonrpc\":\"2.0\",\"method\":\"RegisterValues\",\"params\":[[\"FirstValue\"],\"id\":2}";
我想以更智能的方式执行此操作,因此我不必写出所有这些值。但最重要的是,我想要一种简单的方法来插入这些参数。在我的请求有效负载中轻松声明这些属性的某种方法。
当前方法
此字符串
是通过此调用发送的:
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 似乎不正确,你有一个开方括号 ([) 没有关闭?
那么您必须执行与对象 Response 完全相同的操作。您需要创建一个代表您姓名的对象_ Resty 将为您序列化它。
类似的东西
public class Params {
String jsonrpc;
String method;
String[] params;
String id;
}
关于java - 有没有更简单的方法来使用 RestyGWT 发布此消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22789635/