java - 有没有更简单的方法来使用 RestyGWT 发布此消息?

标签 java gwt json-rpc resty-gwt

问题

由于 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/

相关文章:

java - 如何使用 android-json-rpc 进行 Android(客户端)/Java(服务器)设置?

java - 如何使用点击处理程序隐藏 GWT PopupPanel?

java - 在演示者之间传递控件/值,GWT 模型 View 演示者?

java - 有没有从javascript到Java bean(spring bean)执行RPC的框架?

java - 如何在 Java 中内存映射(mmap)一个 linux block 设备(例如/dev/sdb)?

java - 如何将键盘快捷键添加到我们网络应用程序中的 GWT 按钮?

java - 推荐一个用于 java 和 javascript 的 JSON-RPC 库

java : Identifier expected error when calling a void method from another class

java - 当我尝试在 Android Studio 上运行我的 Android 程序时出现 NullPointerException

java - elasticsearch 5.x - Java Api - 突出显示